Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MigLayout行高和更改字体大小_Java_Swing_User Interface_Miglayout - Fatal编程技术网

Java MigLayout行高和更改字体大小

Java MigLayout行高和更改字体大小,java,swing,user-interface,miglayout,Java,Swing,User Interface,Miglayout,我在使用MigLayout和动态更改MigLayout单元格中显示的组件的字体大小时遇到问题 详细内容:我通过MigLayout向JPanel添加了一个JCheckBox。JCheckBox的字体大小为默认值(12pt?),包含JCheckBox的行的首选高度为17lp。一切正常。 (此处查看:) 现在我将字体大小更改为例如20pt,然后再次启动程序。现在,JCheckBox的文本被剪切,因为行的高度也是17lp。 (此处查看:) 例如,如果我将行定义设为空(“[]”),则文本将以两种字体大小正

我在使用MigLayout和动态更改MigLayout单元格中显示的组件的字体大小时遇到问题

详细内容:我通过MigLayout向JPanel添加了一个JCheckBox。JCheckBox的字体大小为默认值(12pt?),包含JCheckBox的行的首选高度为17lp。一切正常。 (此处查看:)

现在我将字体大小更改为例如20pt,然后再次启动程序。现在,JCheckBox的文本被剪切,因为行的高度也是17lp。 (此处查看:)

例如,如果我将行定义设为空(“[]”),则文本将以两种字体大小正确显示—普通字体和大字体。但不幸的是,在这种情况下,这一排永远不会达到最低17磅。(始终至少有23lp左右)

如何更改MigLayout定义以获得17lp的最小行高,并使单元格与组件字体大小/文本等一起正确增长。? 或者这是L&F的问题

谢谢并致以最良好的问候

菲利普

下面是我的示例代码(工作示例):


您可以通过减小边框大小来减少复选框周围的空间,例如放置

testBox.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));

testBox
的赋值之后。然后,您可以将行定义保留为空,并且仍然可以获得面板的合理高度。

以下内容适用于我。我认为问题在于,您需要指定首选的尺寸

问候 罗杰

testBox.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
package de.test;

import java.awt.Font;

import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

import net.miginfocom.swing.MigLayout;

public class MigTest extends JFrame {
  public MigTest() {
    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(), 90);
    // testBox.setFont(normalFont);
    testBox.setFont(largeFont);

    JPanel tempPanel = new JPanel(new MigLayout("debug", "0lp![grow,fill]0lp!", "[80: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 MigTest();
  }
}