私は、テキストフィールド/コンボボックス/ドロップダウンなどを左から右にページを移動したい単純なSwingアプリケーションを構築しています。私はまた、テキストフィールドとコンボボックスのサイズをテキストのサイズにすることができ、Webページのように大きくすることもできないようにしたいと考えています。Java SwingのGUIレイアウト
私はJFrame
を作成しました。これにはペインのリストが含まれています。現在のところ、検索ペインには右側にlable、次にテキストフィールド、検索ボタンがあり、すべて画面の縦方向に表示されます。ここで
コードされています
public class SearchEvent {
public JPanel createSearchPane() {
JTextField searchEvent = new JTextField();
//searchEvent.setSize(10, 20);
//searchEvent.setSize(new Dimension(10, 10));
JPanel panel = new JPanel();
GridLayout topLayout = new GridLayout(1,1);
panel.setLayout(topLayout);
panel.add(new JLabel("Event to search"));
panel.add(searchEvent);
}
}
MainClass{
private static void createAndShowGUI() {
JFrame frame = new JFrame("Search Event ");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("Search", null, new SearchEvent().createSearchPane(),"Search an event");
tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
//Display the window.
frame.pack();
frame.setVisible(true);
}
どのように私は、テキストフィールドを作ることができますが、テキストフィールド内のテキストや横に左側に表示されるラベルのサイズ、画面の右側に表示されますテキストフィールド?何のため
textField.setMinimumsize(tf.getPreferredsize()) textField.setMaximumSize(tf.getPreferredSize())
:私は、次の2行でやりたいことを実現たSpringLayoutを使用して
[GridLayout constructor](https://docs.oracle.com/javase/9/docs/api/java/awt/)の内容を読んでください。 GridLayout.html#GridLayout-int-int-)があります。現在、1行と1列のGridLayoutを指定しています。 (GridLayoutはこれにとって間違ったレイアウトですが、[公式チュートリアル](https://docs.oracle.com/javase/tutorial/uiswing/layout/)の他のレイアウトについても読んでください) – VGR
だから私は見ていましたこれで既に、私はSpringLayoutを試してみることにしました。ウィンドウがサイズ変更されたときにフィールドが大きくなるという同じ問題です。ウィンドウのサイズを変更したときにテキストフィールドを大きくしたくない場合は、テキストフィールドは20文字以上になるネベットなので、フィールドの巨大な高さやウィンドウが大きくなるときの幅は望ましくありませんサイズがちょうど愚かに見えます。テキストフィールドに最大サイズを設定しても、ウィンドウを最大化してテクスチャフィールドが消える(ラベルは適切なサイズと正しい場所にある)ようにも機能しないように見えます。 – pronane
ここからコピー - >ここから - > https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/uiswing/examples/layout /SpringGridProject/src/layout/SpringUtilities.java – pronane