1

Java プログラムに jta という JTextField があり、高さを約 4 行にしたいのですが、TextField を宣言したときにサイズを設定し、jta.setSize() も使用しましたが、それでも高さを上げられません。これは、MigLayout に、コンポーネントを 1 行に配置できる大きさに制限があるためだと思います。

ここに私のコードの抜粋があります:

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

これがどのように見えるかです

ここに画像の説明を入力

ご覧のとおり、テキストの高さは 1 行だけですが、何か助けはありますか?

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 のサイズを設定してもまだ 1 行ですが、コメント アウトするpanel.setLayout(mg);と問題なく動作します。

4

1 に答える 1

2

私はこのレイアウトを使用する専門家ではありませんが、SSCCE を投稿していただきありがとうございます。

あなたが変わるなら

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

MigLayout mg = new MigLayout();

私は得る

migLayout

于 2013-07-25T03:24:02.463 に答える