0

パネルの中央にコンポーネント (ボタンなど) を設定するにはどうすればよいですか? レイアウト制約を中央として

使用しましたが、パネルの上部中央にボタンが表示されています。Flowlayout

4

3 に答える 3

10

これは、AVD 1またはのいずれかGridBagLayoutを使用して実現できます。サンプルコードについては、この回答を参照してください。BoxLayout

個人的には、これには GBL を使用します。これは、コンポーネントをレイアウトして画面上に表示する (親コンテナーの中央に配置する) のに必要なコード行数が少ないためです。

  1. その答えが賛成票を獲得していない理由はわかりませんが、それはさておき..
于 2012-02-01T04:25:05.737 に答える
5

GridBagLayoutFlowLayout の代わりに使用します。

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 に答える