【发布时间】:2015-09-09 11:31:12
【问题描述】:
如果我点击button1,我有一个应用程序,它将显示一个模态对话框dialog1(但我没有dialog1 的实例。),它还将启动一个线程,其中在线程进行一些处理,并且在线程处理的中间dialog1 线程想要显示警报,可能服务器未连接。但重点不在dialog1之上。它作为dialog1 的同级加载。有没有办法向dialog1的孩子显示警报
这是示例。
public class Main1 extends javax.swing.JFrame {
Thread show = null;
private javax.swing.JButton jButton1;
public Main1() {
setBounds(0, 0, 500, 500);
jButton1 = new javax.swing.JButton("Button1");
jButton1.setBounds(10, 10, 100, 30);
jButton1.setVisible(true);
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
show.start();
//For Example I'm having this. I have a function call which will create and show a dialog similar to this.
java.awt.Frame frame = new java.awt.Frame();
JDialog dialog1 = new JDialog(frame, true);
dialog1.setBounds(20, 20, 300, 300);
dialog1.show();
}
});
getContentPane().add(jButton1);
getContentPane().setLayout(null);
show = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000);
shoe();
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
});
setDefaultCloseOperation(2);
}
private void shoe() {
JOptionPane.showMessageDialog(this, "HEELO");
}
public static void main(String... f) {
new Main1().setVisible(true);
}
}
有没有办法以任何方式获取 Main1 的子模态实例?这样我就可以将该实例提供给JOptionPane.showMessageDialog(this, "HEELO"); 而不是this 或任何其他方式来实现这一点?
如果我的理解有误,请纠正我。如果这是重复的,请原谅我。
【问题讨论】:
-
读取Oracle trails - 事件调度线程和初始线程
标签: java swing joptionpane thread-sleep