我正在顯示一個JOptionPane假設A上的按鈕單擊從JFrame,並再次顯示另一個JOptionPane假設B上的按鈕單擊從JOptionPane A,並且我有一個按鈕JOptionPane B suppoce button1上Button1的Click事件中,我使用的代碼JOptionPane.getRootFrame().dispose()
用於關閉JOptionPane B
,但它關閉A和B,請幫助我如何可以關閉僅有B而不是A.無法正確關閉JOptionPane鏈接順序
這裏是我的示例代碼 我想第二個JOptionPane必須打開
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class SampleCode extends JFrame {
public SampleCode() {
setSize(new Dimension(500, 500));
setLocation(450, 150);
but1 = new JButton("Click me");
add(but1);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
but1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
but1Function();
}
});
}
public static void main(String args[]) {
new SampleCode();
}
void but1Function() {
JPanel panel1 = new JPanel();
JButton but2 = new JButton("Open new dialog");
panel1.add(but2);
but2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JPanel pan2 = new JPanel();
JButton but3 = new JButton("click me to close");
pan2.add(but3);
but3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.getRootFrame().dispose();
}
});
JOptionPane.showMessageDialog(null, pan2);
}
});
JOptionPane jp = new JOptionPane(panel1, JOptionPane.CLOSED_OPTION,
JOptionPane.DEFAULT_OPTION, null, new Object[] {}, null);
JDialog dialog = jp.createDialog(null, "This one must be remain open");
dialog.setLocation(500, 200);
dialog.setSize(new Dimension(345, 200));
dialog.setVisible(true);
}
JButton but1;
}
你可以發佈示例代碼,顯示你在做什麼?這有助於理解你的問題。 –
這裏是我的示例代碼 –
我想中間JOptionPane必須保持打開當我們點擊按鈕'點我關閉'的最後一個joptionpane –