JPanel内のすべてのオブジェクトがJTextFieldのサイズを使用するという異常な問題が発生しました。他のオブジェクトにサイズを強制しようとしても、テキストフィールドに指定されたサイズを独自のものとして使用します。たとえば、次のように独自の方法で単一のパネルを設定しようとしています。
private JPanel setupID() {
JLabel projLbl = new JLabel("Project ID:");
JButton verifyBtn = new JButton("Verify ID");
projID = new JTextField(25);
verifyBtn.setToolTipText("Verifies that the entered ID is not already in use.");
JPanel theID = new JPanel(new GridLayout(1,0));
theID.add(projLbl);
theID.add(projID);
theID.add(verifyBtn);
return theID;
}
最終的には次のようなウィンドウになります...
これJFrame frame;
が読み込まれているウィンドウにはframe.pack()
、フレームサイズを自動調整するためのメソッドが呼び出されます。BorderLayout()
異なる領域(たとえば、WEST、CENTER、EAST)で個々のオブジェクトを作成すると、意図したとおりに機能しますが、パネルにロードされると、すべてのサイズはに基づいてサイズが変更されますJTextField(25)
。これがなぜであるかについて何か考えはありますか?