JavaSwing试图更好地理解它
所以我试着在swing中制作一个包含8个功能的菜单。这是我现在掌握的密码JavaSwing试图更好地理解它,java,swing,Java,Swing,所以我试着在swing中制作一个包含8个功能的菜单。这是我现在掌握的密码 import java.awt.Container; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class Menu extends JFrame { pu
import java.awt.Container;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Menu extends JFrame {
public Menu(){
init();
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable(){
@Override
public void run(){
Menu menu = new Menu();
menu.setVisible(true);
}
});
}
private void init() {
setTitle("Group 2");
setSize(300, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JButton quitButton = new JButton("E(X)it");
quitButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
createLayout(quitButton);
JButton nameAsk = new JButton("What is your name?");
nameAsk.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
}
});
createLayout(nameAsk);
}
private void createLayout(JComponent... arg){
Container pane = getContentPane();
GroupLayout gl = new GroupLayout(pane);
pane.setLayout(gl);
gl.setAutoCreateContainerGaps(true);
gl.setHorizontalGroup(gl.createSequentialGroup().addComponent(arg[0]));
gl.setVerticalGroup(gl.createSequentialGroup().addComponent(arg[0]));
}
}
问题是,当我再添加一个按钮时,另一个按钮就会消失。我认为它位于其他按钮之上,但我现在感到困惑。每次使用createLayout方法添加组件时,似乎都在覆盖布局。您只应该设置一次布局,然后添加按ONE布局的组件。JFrror默认使用边界布局,考虑使用不同的布局管理器。有关更多想法,请参阅