我在我的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
这就是它的样子
如你所见,只有一行文字高,有什么帮助吗?
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);
,那么它可以正常工作。
答案 0 :(得分:2)
我不是使用此布局的专家,但感谢您发布SSCCE。
如果你改变了
MigLayout mg = new MigLayout("", "", "1");
到
MigLayout mg = new MigLayout();
我得到了