0
在我的Swing應用程序中,我的MainFrame中帶有「添加客戶」按鈕。當我點擊「添加客戶」按鈕時,我希望客戶窗體在MainFrame消失時出現。客戶表單只有JTabbedPane。 AddCustomerPanel是一個獨立的類,它只有取消按鈕。 AddCustomerPanel作爲選項卡添加到Customer窗體的JTabbedPane。當我點擊取消按鈕時,我希望客戶框架消失,並再次出現主機。我嘗試使用setVisible()方法。但它沒有奏效。請幫助我做到這一點。setVisible()方法不適用於放置在JPanel上的JButton
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class MainFrame extends JFrame{
private JButton btnMain;
MainFrame(){
setSize(400,200);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
btnMain = new JButton("Add Customer");
btnMain.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
new Customer().setVisible(true);
this.setVisible(false); // Not working
}
});
add(btnMain);
}
public static void main(String args[]){
new MainFrame();
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Customer extends JFrame{
private JTabbedPane tabMain;
Customer(){
setSize(500,300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
tabMain = new JTabbedPane();
tabMain.setPreferredSize(new Dimension(490,290));
tabMain.add("Add Customer",new AddCustomerPanel());
add(tabMain);
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class AddCustomerPanel extends JPanel{
private JButton btnCancel;
AddCustomerPanel(){
setSize(400,200);
setVisible(true);
setLayout(new FlowLayout());
btnCancel = new JButton("Cancel");
btnCancel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
this.setVisible(false); // Not working
new MainFrame().setVisible(true);
}
});
add(btnCancel);
}
}
我找到了答案:) SwingUtilities.getWindowAncestor(本).setVisible(假); new MainFrame()。setVisible(true); – amal 2013-02-26 14:12:05
@Dukeling - 我已經發布它作爲答案。但我必須等待20小時才能接受它。 – amal 2013-02-27 14:22:59