gpt4 book ai didi

java - 有时它显示面板的组件,有时甚至不显示框架中的面板

转载 作者:行者123 更新时间:2023-12-01 18:47:20 25 4
gpt4 key购买 nike

我在这里制作一个非常基本的应用程序,我已经编写了几次更复杂的 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);
}
}


}

最佳答案

问题是您在将组件添加到 jframe 之前使用 setVisible(true)

关于java - 有时它显示面板的组件,有时甚至不显示框架中的面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17219373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com