如何在添加新面板之前删除现有面板

时间:2016-05-20 21:38:19

标签: java swing

我正在学习Java并从事一个项目。我想在单击按钮时添加新面板。它正常工作,但如果用户再次点击按钮,它会再次添加面板。我想在添加新面板之前删除现有面板。我在remove(westPanel); revalidate();方法的开头尝试了actionPerformed,但它无效。

有人可以帮忙吗?

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class MyJpanel extends JPanel implements ActionListener
{       //declaring some buttons
        private JButton newAccountButton, deleteAccountButton, searchButton, showButton, depositButton, withdrawButton;
        protected JPanel westPanel, panel;

        JLabel message = new JLabel("Please Use Buttons For Interation");

        public MyJpanel()
        {   

            newAccountButton = new JButton("Create Account");
            deleteAccountButton = new JButton("Delete Account");
            searchButton = new JButton("Search Account");
            showButton = new JButton("Show Accounts");
            depositButton = new JButton("Deposit");
            withdrawButton = new JButton("Withdraw");

            setBackground(Color.GRAY);

            add(newAccountButton);
            add(deleteAccountButton);
            add(searchButton);
            add(showButton);
            add(depositButton);
            add(withdrawButton);


            newAccountButton.addActionListener(this);

        }

        @Override
        public void actionPerformed(ActionEvent e) 
        {    westPanel= new JPanel();

            if (e.getSource()==newAccountButton)
            {      getRootPane().remove(westPanel);
                   revalidate();

                  JLabel accountNumber = new JLabel("Account Number");
                  JTextField tfaccountnumber = new JTextField(10);

                  JLabel name = new JLabel("Owner Name");
                  JTextField tfName = new JTextField(10);
                  JLabel password = new JLabel("Password");
                  JTextField tfPassword = new JTextField(10);
                  JLabel deposit = new JLabel("Deposit Amount");
                  JTextField tfDeposit = new JTextField(10);
                  westPanel.setLayout(new GridLayout(4,2));
                  westPanel.setBackground(getBackground());


                westPanel.add(accountNumber);
                westPanel.add(tfaccountnumber);
                westPanel.add(name);
                westPanel.add(tfName);
                westPanel.add(password);
                westPanel.add(tfPassword);
                westPanel.add(deposit);
                westPanel.add(tfDeposit);

                add(westPanel);

                revalidate();   
            }

        }
}

0 个答案:

没有答案