2013-04-07 4 views
0

Я строю grpahic интерфейс с различными кнопками, и когда пользователь нажимает на кнопку Я использую:actionPerformed (ActionEvent е) {

actionPerformed(ActionEvent e) { 
Object source = e.getSource(); 
if 
else if 
else if 
... 
} 

Проблема в том, что, когда пользователь нажимает на кнопку, actionPerformed(ActionEvent e) называется , и он вводится в значение, соответствующее e.getSource();. И выполняет все инструкции в соответствующем if. Но я хочу сделать возможным, чтобы пользователь нажимал разные кнопки, так что вызывается actionPerformed(ActionEvent e) {, даже если инструкции предыдущего actionPerformed(ActionEvent e) {еще не закончены.

Я не знаю, понимаете ли вы, но спасибо, если вы можете мне помочь!

ответ

5

Вам нужно будет использовать фоновые потоки, если вы хотите, чтобы графический интерфейс был отзывчивым во время продолжительного процесса. SwingWorker хорошо работает для этого в Swing GUI. Пожалуйста, проверьте Concurrency in Swing для всех подробностей.

Примеры:

+0

Что такое фоновый поток? У вас есть пример? – Natacha

+0

@ Natacha: Да, тонны примеров. Пожалуйста, найдите этот сайт с моим именем и ключевым словом * SwingWorker *, чтобы увидеть некоторые из них. –

+0

Я не знаю, как искать в вашем профиле:/ – Natacha

2

Вы должны использовать SwingWorker. Он выполняет работу в фоновом режиме без замораживания пользовательского интерфейса.

Here - вопрос, который вы можете найти, как использовать их. Или вы можете использовать официальный оракул documentation для SwingWorker.

Смежные вопросы