次のスイングコンポーネントがあります。画像をご覧ください。 ラベルとコンボボックス、ラベル、およびテキストフィールドが正しく整列していません。この問題の原因は何ですか?JPanelのスイングコンポーネントを左揃えにする方法
私はパネルでのGridBagLayoutを使用しています。ラベルやコンボボックス、テキストフィールドなどのコンポーネントをパネルに追加します。
以下は、私が使用したコードです。
srchCategoryLbl = new JLabel("Category");
categoryCmb = new JComboBox<>();
categoryCmb.setPreferredSize(dimensionTxt);
categoryCmb.setBounds(0, 0, 0, 0);
srchProductCodeLbl = new JLabel("Product Code");
productCodeTxt = new JTextField();
productCodeTxt.setPreferredSize(dimensionTxt);
srchProductDescLbl = new JLabel("Product Desc");
productDescTxt = new JTextField();
productDescTxt.setPreferredSize(dimensionTxt);
searchBtn = new JButton("Search");
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.anchor = GridBagConstraints.WEST;
searchPanel.add(srchCategoryLbl, gbc);
gbc.gridx = 0;
gbc.gridy = 1;
searchPanel.add(categoryCmb, gbc);
gbc.gridx = 1;
gbc.gridy = 0;
searchPanel.add(srchProductCodeLbl, gbc);
gbc.gridx = 1;
gbc.gridy = 1;
searchPanel.add(productCodeTxt, gbc);
gbc.gridx = 2;
gbc.gridy = 0;
searchPanel.add(srchProductDescLbl, gbc);
gbc.gridx = 2;
gbc.gridy = 1;
searchPanel.add(productDescTxt, gbc);
gbc.gridx = 3;
gbc.gridy = 1;
searchPanel.add(searchBtn, gbc);
私はあなたの問題を解決しないと思うが、通常はsetBoundsとsetPreferrededSizeの使用をお勧めしません。 LayOut Managerでコンポーネントの位置とサイズを処理させます。 –
@FranciscoPuga、その場合、コンポーネントのサイズはどのように設定しますか? – Mayuran
Macをお使いですか?テキストフィールドの周りに特別な「フォーカス」境界線を配置し、テキストフィールドを表示することができます。あなたは、いくつかのピクセルでラベルを右に動かして補うことができます – MadProgrammer