パネルの中央にコンポーネント (ボタンなど) を設定するにはどうすればよいですか? レイアウト制約を中央として
使用しましたが、パネルの上部中央にボタンが表示されています。Flowlayout
8432 次
3 に答える
10
これは、AVD 1またはのいずれかGridBagLayout
を使用して実現できます。サンプルコードについては、この回答を参照してください。BoxLayout
個人的には、これには GBL を使用します。これは、コンポーネントをレイアウトして画面上に表示する (親コンテナーの中央に配置する) のに必要なコード行数が少ないためです。
- その答えが賛成票を獲得していない理由はわかりませんが、それはさておき..
于 2012-02-01T04:25:05.737 に答える
5
GridBagLayout
FlowLayout の代わりに使用します。
JPanel panel=new JPanel();
panel.setLayout(new GridBagLayout());
panel.add(new JButton("Sample")); // will use default value of GridBagConstraints
于 2012-02-01T04:07:36.837 に答える
0
次のように、レイアウトを使用しnull
てボタンの境界を設定します。
// assuming you're extending JPanel
private JButton button; // data field
...
this.setLayout(null);
this.addComponentListener(new ComponentAdapter(){
public void componentResized(ComponentEvent e){
setButtonBounds();
}
});
private void setButtonBounds(){
int bw = 90; // button width
int bh = 30; // button height
int w = getWidth();
int h = getHeight();
button.setBounds((w - bw) / 2, (h - bh) / 2, bw, bh);
}
多数のボタンや複雑なレイアウトを取得し始めた場合は、MigLayoutの使用を検討してください。
于 2012-02-01T04:09:40.220 に答える