java - JTextArea 不会在 MigLayout 中垂直更改大小

标签 java swing jpanel layout-manager miglayout

我的java程序中有一个名为jta的JTextField,我希望它大约有4行高,我在声明TextField时设置了大小,并且我还使用了jta.setSize(),但我仍然无法让它更高。我认为这是因为 MigLayout 对连续的组件大小有限制。

这是我的代码片段:

static JTextArea jta = new JTextArea(10, 42);
//declaring the JTextArea
    jta.setFont(inputfont);
    jta.setBackground(Color.LIGHT_GRAY);
    jta.setForeground(Color.WHITE);
    jta.setLineWrap(true);
    jta.setWrapStyleWord(true);
    jta.setRows(4);
//setting the jta up
panel.add(jta,"w 100%, h 100%,span,wrap");\
//adding jta to the panel

这就是它的样子

enter image description here

如您所见,它只有一行文字高,有什么帮助吗?

SSCCE:

import net.miginfocom.swing.MigLayout;

public class miglayout {

public static void main(String args[]) {
    MigLayout mg = new MigLayout("", "", "1");
    JFrame frame = new JFrame("jta SSCCE");
    JPanel panel = new JPanel();
    JLabel l1 = new JLabel("Row 1");
    JLabel l2 = new JLabel("Row 3");
    panel.setLayout(mg);
    frame.add(panel);
    JTextArea jta = new JTextArea(4, 40);
    panel.add(l1, "wrap");
    panel.add(jta, "wrap");
    panel.add(l2);
    frame.pack();
    frame.setVisible(true);
    }
}

正如您所看到的,如果您运行此代码,即使我设置了 JTextArea 的大小,它仍然是一行,但是如果您注释掉 panel.setLayout(mg); 那么它工作正常。

最佳答案

我不是使用此布局的专家,但感谢您发布 SSCCE。

如果你改变

MigLayout mg = new MigLayout("", "", "1");

MigLayout mg = new MigLayout();

我明白

migLayout

关于java - JTextArea 不会在 MigLayout 中垂直更改大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17847969/

相关文章:

java - ActionListener 不适用于所有对象

java - 如何计算等边三角形的坐标?

java - 如何使用servlet获取glassfish根目录的真实路径

java - 带有复选框问题的 JTable - 运行时未创建表

java - 在 JPanel 上绘制部分透明的 PNG

Java Swing 定时器;创建一个循环;数到 4 两次

java - 强制显示 JLabel 子类

java - 我可以同时使用 SOAP Web 服务和 Spring MVC 吗

java - 方法调用后控制台输出不起作用

变量名