Swingアプリケーションでのユーザー入力用のsとsJPanel
を含むsがいくつかあります。JLabel
JTextField
NetBeans GUI Builderによって生成されたコードを手動で編集していますが、それでも同様のレイアウトを維持したいと考えています。
を使用して開始しましたGridLayout
。を微調整hgap
して自分JLabel
のsとJTextField
sを適切なサイズにすることができますが、これはすべてのJPanel
sに対して個別に行う必要があります。
LayoutManager
コンポーネントのフォントサイズに基づいてテキストコンポーネントの正しい高さを計算し、テキストコンポーネントの間および/または周囲にスペースを含むコンポーネントを埋める標準はありますか?
編集:
リクエストに応じて、これが私がやろうとしていることを示すためのSSCCEです
GridLayoutSSCCE:
package gridlayoutsscce;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class GridLayoutSSCCE {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new JFrame("Grid Layout SSCCE");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new GridLayoutSSCCEPanel());
f.pack();
f.setVisible(true);
}
});
}
}
GridLayoutSSCCEPanel:
package gridlayoutsscce;
import java.awt.GridLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
class GridLayoutSSCCEPanel extends JPanel {
public GridLayoutSSCCEPanel() {
this.setLayout(new GridLayout(2, 2));
this.add(new JLabel("Label 1:"));
this.add(new JTextField());
this.add(new JLabel("Label 2:"));
this.add(new JTextField());
}
}
私が最初にプログラムを実行したとき、これはうまく見えます。ただし、ウィンドウのサイズを変更すると、テキストフィールドが伸びて、それぞれがウィンドウの高さの半分を占めるようになります。ウィンドウのサイズを変更したときの高さと同じ高さを維持したいと思います。