2012-01-23 1 views
3

자바에서 인터페이스를 만들고 있는데 버튼을 오른쪽에 맞추고 싶습니다. 노력하고 있지만 작동하지 않습니다. 누군가 그것을 어떻게하는지 말해 줄 수 있습니까?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

. 따라서 JFrame에 추가하는 구성 요소는 위에서 아래로 인 으로 표시됩니다. 더 나쁜 것은 여전히 ​​GridLayout 부분 공간 은 모두 3 가지 구성 요소 중입니다. 즉, 단추가 양방향으로 늘어나게됩니다. 이는 거의 확실하게 이 아니며입니다.

대체 레이아웃 관리자를 사용하는 것이 좋습니다. 간단한 레이아웃의 경우 나는 BorderLayout 또는 FlowLayout을 선호합니다. 더 복잡한 레이아웃의 경우 MigLayout을 선호하는 다른 사람들이 있지만 GridBagLayout쪽으로 향합니다.

자세한 정보 here.

+1

GridBagLayout은 사용하기 복잡합니다 ... –

+0

일단 그립을 잡으면 GridBagLayout은 그다지 어렵지 않고 높은 유연성을 제공합니다. MigLayout을 선호하는 다른 사람들이 있지만 말했듯이. – Adamski

+0

@ Adamski..thanks 야, 내가있어 : :) 도와 줘서 고마워. 나는 FlowLayout을 사용한 다음 오른쪽으로 정렬했다. – Ravi77

2

다음과 같이하십시오 :

현재 레이아웃 매니저 ( GridLayout가) 3 행과 하나의 열이 생성되는
JButton save = new JButton ("save"); 
setLayout (new BorderLayout()); 
add (save, BorderLayout.EAST); 
+0

@ SoboLAN.. 나는 그것을 시도하지만 나는 이것을 좋아하지 않는다. 두 단추가 오른쪽에 있어야합니다. – Ravi77

0

신속하고 더러운 방법은 BorderLayout를 사용하여 그것을 용기에 [옆 버튼에 오른쪽에 다른 구성 요소를 추가 할 경우, immediatly 버튼을 포장 또는 컨테이너] 버튼을 배치하는 것입니다 해당 버튼 [또는 포장 컨테이너]에 대해 BorderLayout.EAST 레이아웃 제약 조건을 사용합니다.

0

는 대신 JPanel이 (JPanel의 기본 FlowLayout가있다), I는 왼쪽에서 오른쪽으로

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

통지 --->하지만 현재 ComponentOrientations에서 GridLayoutthen 3rd. grid is empty 시작 생각의 JFrame 생성자에 GridLayout 설정

만 귀하의 경우 JFrame#add(JPanel)을 추가

add(header); 
관련 문제