2014-03-04 2 views
0

단추가 있습니다. 내 JPanel에는 GridLayout 레이아웃이 있습니다. 모든 구성 요소가 정사각형 밖에 놓여 중심에 위치하기를 바랍니다. 다음은 이미지입니다. http://screencast.com/t/z86ldR9vhGridLayout 센터 오버플로 구성 요소

옵션 버튼을 그룹 중앙에 놓고 싶습니다. 사전에

감사합니다!

+0

setLayout (null) = 완전한 자유 :-) – Solace

+0

농담. borderlayout 또는 boxlayout을 사용 해본 적이 있습니까? Gridbaglayout을 사용하면 요소가 둘 이상의 셀에 스팬 될 수 있습니다. – Solace

+1

'GridBagLayout' = 완전 자유 – MadProgrammer

답변

1

"옵션"버튼에 대해 다른 JPanel을 생성하고 플로우 레이아웃으로 설정하십시오. 예를 들어 은 상단 패널 "에 Panel1"라고 말하고 하단은 "panel2"입니다 : 당신은 클래스의 전체 코드를 좋아하면 (모든 수입과),

// create top panel with first four buttons 
JPanel panel1 = new JPanel(new GridLayout(2, 2)); 
panel1.add(new JButton("Play")); 
panel1.add(new JButton("New Game")); 
panel1.add(new JButton("Save Game")); 
panel1.add(new JButton("Load Game")); 

// create bottom panel with "Options" button 
JPanel panel2 = new JPanel(new FlowLayout()); 
panel2.add(new JButton("Options")); 

또는 :

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JButton; 
import java.awt.Dimension; 
import java.awt.FlowLayout; 
import java.awt.GridLayout; 

public class Buttons { 
    public static void main(String[] args) { 
     Buttons gui = new Buttons(); 
    } 

    public Buttons() { 
     // create frame 
     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(new Dimension(250, 150)); 
     frame.setLayout(new FlowLayout()); 
     frame.setVisible(true); 

     // create top panel with first four buttons 
     JPanel panel1 = new JPanel(new GridLayout(2, 2)); 
     panel1.add(new JButton("Play")); 
     panel1.add(new JButton("New Game")); 
     panel1.add(new JButton("Save Game")); 
     panel1.add(new JButton("Load Game")); 

     // create bottom panel with "Options" button 
     JPanel panel2 = new JPanel(new FlowLayout()); 
     panel2.add(new JButton("Options")); 

     // add panels to frame 
     frame.add(panel1); 
     frame.add(panel2); 
    } 
}