2013-07-25 16 views
1

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

这里是我的代码SNIPPIT:

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);那么它的工作原理精细。

+0

有没有理由使用静态的?考虑发布(SSCCE)[www.sscce.org]以获得更快更好的答案。 – nachokk

+0

@nachokk我用不同的方法使它可编辑,改变颜色等。什么是SSCCE? –

+0

简短的自包含正确的例子,你发布可编译的代码,然后人们想要帮助你,复制粘贴,并可以测试代码,并会很容易 – nachokk

回答

2

我不是一个使用这种布局的专家,但是谢谢你发布了一个SSCCE。

如果你改变

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

MigLayout mg = new MigLayout(); 

我得到

migLayout

+0

非常感谢! –