22

私は次のJPanelようなものを持っています:

JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

...

panel.add(jTextField1);
panel.add(Box.createVerticalStrut(10));
panel.add(jButton1);

panel.add(Box.createVerticalStrut(30));

panel.add(jTextField2);
panel.add(Box.createVerticalStrut(10));
panel.add(jButton2);

... //etc.

私の問題は、JTextFieldsが垂直に巨大になることです。ユーザーが入力できるのは1行だけなので、高さは1行だけにしたいです。ボタンは問題ありません (垂直方向に拡張しません)。

JTextFields が拡大しないようにする方法はありますか? 私は Swing にかなり慣れていないので、ひどく間違ったことをしている場合はお知らせください。

4

5 に答える 5

44
textField = new JTextField( ... );
textField.setMaximumSize( textField.getPreferredSize() );
于 2010-04-25T18:51:57.867 に答える
30

幅を変更し続けたい場合は、MAX INT に設定したままにしてください。そう...

textField.setMaximumSize(
     new Dimension(Integer.MAX_VALUE, textField.getPreferredSize().height) );

于 2011-04-06T22:18:46.227 に答える
0

最大高さを設定します。またはそれらをスクロール領域に配置します

于 2010-04-25T18:01:14.660 に答える
-1
JPanel panel = new JPanel();

Box box = Box.createVerticalBox();

JTextField tf = new JTextField(8);

box.add(tf);
panel.add(box);

frame.getContentPane().add(panel, BorderLayout.CENTER);
于 2011-11-14T13:20:49.327 に答える