2016-11-11 10 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!"); 
} 
} 

Приведенный выше код выравнивает 2 кнопки входа и регистрации по оси X. Я собираюсь складывать их с помощью BoxLayout.Y_AXIS, но он не работает.BoxLayout.Y_AXIS не работает в качелях

2 кнопки выровнены горизонтально бок о бок, и я хочу, чтобы они были неподвижными.

ответ

1

По умолчанию JPanel использует FlowLayout, поэтому ваш класс MyJPanel использует FlowLayout.

Вы добавляете свои кнопки в панель, поэтому панели необходимо использовать BoxLayout, а не область содержимого.

В начале конструктора для вашего класса вам необходимо:

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

 Смежные вопросы

  • Нет связанных вопросов^_^