У меня трудное время для использования работника Swing для работы с моим проектом. Он имеет две программы: один - logic (full program), а другой - графический интерфейс. Я вызываю логическую программу из графического интерфейса. И из-за своей невосприимчивости я попытался использовать Swing-работника. Но даже если я использую Swing worker, он все еще не отвечает. Если я запускаю программу, она отображает графический интерфейс, но если я нажму на старте, начнется другая программа, и она перестанет отвечать на запросы.Неотвечивающий работник качания
Этот фрагмент кода из GUI program (полная программа):
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
state.setText("Listening");
System.out.println("Started Listening");
state.setBackground(new Color(51, 204, 0));
doRun(args);
}
});
public void doRun(String[] args) {
SwingWorker<Void, String> worker = new SwingWorker<Void, String>(){
@Override
protected Void doInBackground() throws Exception {
// Object to use from another program
HelloWorld obj = new HelloWorld();
obj.main(args);
return null;
}};
worker.execute();
}
ли вы попробовать любого из [этих предложений] (http://stackoverflow.com/a/28977281/230513) в этом возможном [дубликате] (HTTP: // stackoverflow.com/q/28971487/230513)? – trashgod
@trashgod Да, это то, что я пытался. Как вы сказали, а другие сказали использовать качели. Но я не могу сделать его гибким графическим интерфейсом или запустить программу sphinx в фоновом режиме. – Robin
Вместо запуска 'HelloWorld # main()', создайте 'LiveSpeechRecognizer' и' publish() 'результаты. – trashgod