我在这里制作了一个非常基本的应用程序,我已经编写了好几次更复杂的 gui 应用程序,但由于某种原因,我的面板有时会显示其组件,有时面板甚至不会显示在框架中。
面板由两个基本组件组成:1 个按钮和 1 个 Jtextfield。按钮有时会显示,Jtextfield 甚至不显示?
我正在使用 GridBagLayout。以下是非常简单的代码:
public class Start extends JFrame implements ActionListener{
public static HomeList home;
public static String user = "default";
public GridBagConstraints c = new GridBagConstraints();
public Start(){
super("title");
this.pack();
this.setSize(800, 500); // w h
this.setBackground(Color.DARK_GRAY);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
this.setVisible(true);
JPanel pane = new JPanel();
pane.setLayout(new GridBagLayout());
pane.setPreferredSize(new Dimension(300, 100));
pane.setBackground(Color.BLUE);
this.getContentPane().add(pane, BorderLayout.CENTER);
JButton button = new JButton("Enter");
button.setActionCommand("login");
button.addActionListener(this);
c.gridx = 0;
c.gridy = 0;
pane.add(button,c);
JTextField text = new JTextField(20);
text.setVisible(true);
c.gridx = 1;
c.gridy = 0;
pane.add(text,c);
}
public static void main(String[] args) {
new Start();
}
@Override
public void actionPerformed(ActionEvent ae) {
if("login".equalsIgnoreCase(ae.getActionCommand())){
this.dispose();
home = new HomeList(user);
}
}
}