0
我已經增加了一個JRadioButton
到JPanel
和處理其鼠標單擊事件如下Java
代碼處理併發事件的Java Swing事件處理
JRadioButton offline = new JRadioButton();
offline.setText("Offline Mode");
modePanel.add(offline);
modePanel.setLayout(new GridLayout(2,1));
offline.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
offlineClicked(evt);
}
});
功能offlineClicked
需要大約四周1分鐘是完全執行。 並且直到它的執行完成,沒有其他操作執行被處理。
此後執行的所有操作似乎進入事件隊列並在offlineClicked
完成執行時處理FIFO。
由於此,UI 似乎已進入掛起狀態。
可以做什麼來使擺動控制器事件同時發生,而不是等到最後才完全執行。
標準技術是永遠不要在事件線程上做應用程序工作。 始終在單獨的處理線程上運行應用程序工作,以便UI保持響應。有關此主題的完整書籍和教程,請執行一些Google搜索。從Oracle的教程開始。 –
您正在尋找按鈕上的'SwingWorker'和'ActionListener'; [例如('SwingWorker')](http://stackoverflow.com/questions/20944719/how-to-use-swingworker/20945255#20945255) – MadProgrammer
每次點擊處理都很重要嗎?或者你想要點擊被忽略,直到完成第一次點擊的初始過程? - 在實現併發解決方案時(即使使用SwingWorker等),您必須考慮到這一點。 – Fildor