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

时间:2015-03-27 14:30:03

标签: java swing user-interface

我是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的新手。谢谢!

1 个答案:

答案 0 :(得分:1)

JPanel需要包装的内容才能显示;你必须创建另一个" windows&#34 ;;例如JDialog。然后将创建的面板添加到"窗口"。

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