2012-01-23 13 views
3

私はJavaでインターフェイスを作成していますが、ボタンを右に揃えたいと思います。私は試してみましたが、動作していません。誰かが私にそれをする方法を教えてもいいですか?JButtonを右に整える

import java.awt.Color; 
import java.awt.GridLayout; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 


public class Button_Alignment extends JFrame{ 
    public JPanel header,body,footer; 
    public JButton add1; 
    public JButton save; 
    public Button_Alignment(){ 
     super("BUTTON"); 
     GridLayout g1 = new GridLayout(3,1); 
     setLayout(g1); 
     ////// 
     header = new JPanel(); 
     JButton add1 = new JButton("add"); 
     header.add(add1); 
     JButton save = new JButton("save"); 
     header.add(save); 
     ////// 
     add(header); 
     header.setBackground(Color.cyan); 
    } 
    public static void main(String[] args){ 
     Button_Alignment ba = new Button_Alignment(); 
     ba.setSize(400, 400); 
     ba.setVisible(true); 
    } 
} 
+1

適切なレイアウトマネージャを使用してください。 – mre

答えて

4

あなたの現在のレイアウトマネージャ(GridLayout)は3行と単一の列を使用して作成されています。したがって、JFrameに追加するコンポーネントは、上から下に向かってのと表示されます。さらに悪いことに、GridLayoutは、部分空間と同じようにの3つのコンポーネントのいずれにもなります。これは、ボタンが両方向に伸びることを意味し、ほとんど確実にではなく、です。

代替レイアウトマネージャの使用を検討します。単純なレイアウトの場合、私はBorderLayoutまたはFlowLayoutを好む傾向があります。もっと複雑なレイアウトの場合は、GridBagLayoutに向かって傾けますが、MigLayoutを好む人もいます。

詳細情報here

+1

GridBagLayoutは使いやすいものです。 –

+0

グリップを取得すると、GridBagLayoutはそれほど難しくはなく、高度な柔軟性を提供します。私が言ったように、MigLayoutを好む人もいます。 – Adamski

+0

@ Adamski..thanksおい、私はそれを得た:)あなたの助けを借りてありがとう: 私はFlowLayoutを使用して、私はそれを右に揃えました。 – Ravi77

2

このようにしてみてください。

JButton save = new JButton ("save"); 
setLayout (new BorderLayout()); 
add (save, BorderLayout.EAST); 
+0

@ SoboLAN..私はそれを試してみましたが、私はこのようにしたくありません。私は両方のボタンを右手側にしたい。 – Ravi77

0

A 迅速かつ汚い方法がBorderLayoutを使用してコンテナ内の[次のあなたのボタンにあなたは右側に他のコンポーネントを追加したい場合は、すぐにボタンをラップまたはコンテナ]ボタンを配置することですそのボタン[またはラッピングコンテナ]にBorderLayout.EASTレイアウト制約を使用します。

0

あなたは(JPanelのは、デフォルトFlowLayoutであり)、私はthen 3rd. grid is empty、左から右に開始する

header.setLayout(new GridLayout(3,1)); 
header.add(add1); 
header.add(save); 

は予告--->が、現在のComponentOrientationsGridLayoutと思う代わりにJPanelJFrameコンストラクタにGridLayoutを設定

だけあなたのケース

add(header); 
で、 JFrame#add(JPanel)を追加します
関連する問題