0
我有一個jframe和jtextpane,我想運行一個方法,檢查端口在pc,直到用戶關閉jframe,我嘗試通過使用windowlistner,但該方法只運行一次,我希望它運行,直到用戶關閉該應用程序在Jframe的背景操作
frame = new JFrame();
frame.setResizable(false);
frame.setBounds(100, 100, 552, 444);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
frame.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowActivated(WindowEvent arg0) {
checkport(); // this run at first time only!
}
});
檢查出['Executors'](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html)framework..you'll想確保你在Event Dispatch Thread之外執行'checkport',否則你的UI將會「凍結」。 – mre 2013-02-20 14:28:52
'frame.getContentPane()。setLayout(null);' - >停止使用那種非常不好的習慣。 SwingWorker在哪裏?在框架關閉之前你的意思是什麼? windowActivated在幀被激活時被調用(即,當用戶聚焦你的窗口時)。 – 2013-02-20 14:31:53
1)爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 2)在適當的地方使用大寫字母(句子開頭,單詞I,類名稱,如'JFrame')。閱讀就像試圖聽一個嘟someone着的人。我有更好的事情要做。 – 2013-02-20 14:34:30