当我选择create
选项时,它仍会显示选项。
public Assign(){
setLayout(new BorderLayout());
JPanel jpnButton = new JPanel();
jpnButton.add(jbtCreate); //the selection for user to choose
jpnButton.add(jbtRetrieve);
jpnButton.add(jbtUpdate);
jpnButton.add(jbtDelete);
add(jpnButton, BorderLayout.CENTER);
jbtCreate.addActionListener(new ActionHandle());
jbtRetrieve.addActionListener(new ActionHandle());
jbtUpdate.addActionListener(new ActionHandle());
jbtDelete.addActionListener(new ActionHandle());
setTitle("Manage Supplier");
setSize(500,100);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public class ActionHandle implements ActionListener{
@Override
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == jbtCreate){ //if the user choose to create a new supplier then it will come out the previous selection together- Create,retrieve,update and delete
add(ptn1, BorderLayout.CENTER);
add(ptn2, BorderLayout.SOUTH);
ptn1.setBorder(new TitledBorder(null, "New Supplier Details"));
ptn1.add(new JLabel("Company Name"));
ptn1.add(jtxt1);
ptn1.add(new JLabel("Address"));
ptn1.add(jtxt2);
ptn1.add(new JLabel("Town"));
ptn1.add(jtxt3);
ptn1.add(new JLabel("Postcode"));
ptn1.add(jtxt4);
ptn1.add(new JLabel("Country"));
ptn1.add(jtxt5);
ptn1.add(new JLabel("Contact Information"));
ptn1.add(new JLabel("Contact Name"));
ptn1.add(jtxt6);
ptn1.add(new JLabel("Email"));
ptn1.add(jtxt7);
ptn1.add(new JLabel("Product Supply"));
ptn1.add(jtxt8);
ptn2.add(jbtOK);
ptn2.add(jbtCancel);
setSize(1000,500);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
答案 0 :(得分:1)
首先为第一帧设置
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
如果你想先关闭并打开第二个使用atach,这个监听器在第一个JFrame中按钮
@Override
public void actionPerformed(ActionEvent e)
{
setVisible(false);
dispose();
new SecondJFrame();
}
致@Andrew Thompson:
System.exit();
导致Java VM完全终止。
JFrame.dispose();
导致JFrame
窗口被操作系统销毁和清理。根据{{3}},如果没有其他Windows可用,这可能导致Java VM终止,但这应该被视为副作用而不是常态。
您选择的那个真的取决于您的情况。如果要终止当前Java VM中的所有内容,则应使用System.exit()
并清除所有内容。如果您只想破坏当前窗口,如果这是唯一的窗口,则会产生关闭Java VM的副作用,然后使用JFrame.dispose()
。