我是JSwing的新手,我想问一个关于点击按钮打开新JPanels的问题。
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的新手。谢谢!
答案 0 :(得分:1)
JPanel需要包装的内容才能显示;你必须创建另一个" windows&#34 ;;例如JDialog。然后将创建的面板添加到"窗口"。
换句话说:仅创建JPanel不足以使其可见。