MigLayout 셀에 표시된 구성 요소의 글꼴 크기를 동적으로 변경하는 것과 함께 MigLayout을 사용하는 데 문제가 있습니다.MigLayout 행 높이 및 글꼴 크기 변경
세부 사항 : MigLayout을 통해 JCheckBox를 JPanel에 추가했습니다. JCheckBox의 글꼴 크기는 기본값 (12pt?)이며 JCheckBox가있는 행의 기본 높이는 17lp입니다. 그건 모두 잘 작동합니다. (보기 : http://www.bilderload.com/bild/227327/migproblemcellheight1UQXP2.png)
이제 폰트 크기를 예 : 20pt를 입력하고 프로그램을 다시 시작하십시오. 이제 행의 높이가 17lp이므로 JCheckBox의 텍스트가 잘립니다. (보기 : http://www.bilderload.com/bild/227328/migproblemcellheight2DDPGJ.png)
예를 들어 행 정의를 공백 ("[]")으로두면 글꼴 크기가 일반 글꼴과 큰 글꼴 모두에서 올바르게 표시됩니다. 그러나이 경우 행은 슬프게도 최소 17lp에 도달하지 않습니다. (항상 최소 23lp 정도입니다.)
MigLayout 정의를 변경하여 17lp의 최소 행 높이를 얻고 셀이 구성 요소 font-size/text 등으로 올바르게 커지도록하려면 어떻게해야합니까? 또는 이것은 아마도 L & F 문제일까요?
감사 & 안부,
필립 여기
내 샘플 코드 (작업 예) : 당신은 경계의 크기를 감소시켜 체크 박스 주위의 공간을 줄일 수
import java.awt.Font;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
public class TestMigLayoutFontSize extends JFrame {
public TestMigLayoutFontSize() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(600, 400);
setContentPane(getTestPanel());
setVisible(true);
}
private JPanel getTestPanel() {
JCheckBox testBox = new JCheckBox("Program argument");
Font normalFont = testBox.getFont();
Font largeFont = new Font(testBox.getFont().getName(), testBox.getFont().getStyle(), 20);
// testBox.setFont(normalFont);
testBox.setFont(largeFont);
JPanel tempPanel = new JPanel(new MigLayout("debug", "0lp![grow,fill]0lp!", "[17lp:17lp:n]"));
tempPanel.add(testBox);
JPanel testPanel = new JPanel(new MigLayout("", "[grow,fill]", "[grow,fill]"));
testPanel.add(tempPanel);
return testPanel;
}
public static void main(String[] args) {
new TestMigLayoutFontSize();
}
}