gpt4 book ai didi

java - 如何通过单击按钮打开一个新的 JPanel 窗口?

转载 作者:行者123 更新时间:2023-11-30 11:06:27 25 4
gpt4 key购买 nike

我是 JSwing 的新手,我想问一个关于通过单击按钮打开新的 JPanel 的问题。

public class GUIDriver extends JFrame implements ActionListener {

private JPanel mainPanel;
private JButton regButton;
private JButton loginButton;
private JButton acctButton;

public GUIDriver(){

super("FriendBook");
mainPanel = new JPanel();
regButton = new JButton("Register Account");
loginButton = new JButton("Login");
acctButton = new JButton("View Accounts");

mainPanel.add(regButton);
mainPanel.add(loginButton);
mainPanel.add(acctButton);

regButton.addActionListener(this);
loginButton.addActionListener(this);
acctButton.addActionListener(this);
getContentPane().add(mainPanel);
setSize(300,300);
}

public static void main(String[] args){

GUIDriver myDriver = new GUIDriver();

myDriver.setVisible(true);
myDriver.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}


@Override
public void actionPerformed(ActionEvent e){

if(e.getSource() == regButton){

JPanel register = new JPanel();
register.setSize(new Dimension(400,100));
JLabel username = new JLabel("Username");
JLabel password = new JLabel("Password");
JButton registerBT = new JButton("Register Account");
JTextField uname = new JTextField(20);
JTextField pass = new JTextField(20);
register.add(username);
register.add(uname);
register.add(password);
register.add(pass);
register.add(registerBT);

register.setVisible(true);



}
else if(e.getSource() == loginButton){

System.out.print("LOGIN");
}

else if (e.getSource() == acctButton){

System.out.print("VIEW ACCOUNTS");
}
}

}

程序显示三个按钮(注册、登录和查看)。我想在单击“注册”按钮时打开一个新的 JPanel 窗口,但它没有显示。请帮助我,我是 JSwing/Java GUI 的新手。谢谢!

最佳答案

JPanel 需要环绕的东西才能显示;你必须创建另一个“窗口”;例如 JDialog。然后将创建的面板添加到该“窗口”。

换句话说:仅创建 JPanel 不足以使其可见。

关于java - 如何通过单击按钮打开一个新的 JPanel 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29303116/

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