2016-11-11 1 views
0
import javax.swing.*; 
import java.awt.*; 

class MyJPanel extends JPanel { 
JButton login, register; 

public MyJPanel() { 
    login = new JButton("Login"); 
    register = new JButton("Register"); 

    this.add(register); 
    this.add(login); 
} 
} 

class MyJFrame extends JFrame { 
MyJPanel mjp; 

public MyJFrame(String title) { 
    super(title); 

    mjp = new MyJPanel(); 

    Container ct = getContentPane(); 
    ct.add(mjp); 


    setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); 
    setSize(400,400); 
    this.setVisible(true); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
} 
} 

class Gui7FirstPage { 
public static void main(String[] args) { 
    MyJFrame mjf = new MyJFrame("Welcome!"); 
} 
} 

위 코드는 X 버튼을 통한 2 버튼 로그인 및 등록을 정렬합니다. BoxLayout.Y_AXIS를 사용하여 이들을 쌓으려고하지만 작동하지 않습니다.BoxLayout.Y_AXIS가 스윙에서 작동하지 않습니다.

2 개의 버튼이 나란히 수평으로 정렬되어 있으며, 이들이 사실적으로 배치되기를 원합니다.

답변

1

기본적으로 JPanelFlowLayout을 사용하므로 MyJPanel 클래스는 FlowLayout을 사용합니다.

버튼을 패널에 추가 중이므로 패널에서 내용 창이 아닌 BoxLayout을 사용해야합니다. 클래스에 대한 생성자의 시작에서

이 필요합니다

setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));