У меня был код, который сделал распечатку в swingworker. Я не получал распечатки, поэтому использовал SwingUtilities.invokeLater
, и теперь он работает. Я не ожидал этого результата, как это произошло? Я бы подумал, что System.out.println
может работать за пределами EDT.Должно ли system.out.println быть на edt?
ответ
Это было бы довольно легко проверить (не сказать, даже вводить весь код, чтобы проверить это меньше работы, то разместить его здесь):
import java.awt.EventQueue;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world");
System.out.println(EventQueue.isDispatchThread());
}
}
приводит
Hello world
false
на консоли.
Так что да, System.out.println
могут быть использованы за пределами EDT
У меня бы возникла мысль system.out.println за пределами edt.
Это правда. Чтобы проверить это, создайте поток, в который вы помещаете петлю и распечатку, и убедитесь сами:
System.out.println запускается за пределами edt. Вы запустили его, когда запустили его с помощью swingworker. Теоретически вы всегда сможете просто распечатать результаты прямо из своего кодового блока. я предлагаю:
Runnable runnable = new Runnable() {
public void run() {
}
};
SwingUtilities.invokeLater(runnable);
Хотя может, это имеет очень мало приложений вне отладки.
пример для альтернативного вывода будет JOptionPane:
JOptionPane.showMessageDialog(frame/* sets up the message, can also be replaced with null to remove formatting*/,
"Eggs are not supposed to be green."/* this is your main message*/,
"A plain message"/* this is what shows in the title spot (first parameter must not be null)*/,
JOptionPane.PLAIN_MESSAGE/*shows no icon, also replacable with WARNING_MESSAGE, ERROR_MESSAGE, INFORMATION_MESSAGE*/);
все, что бы на одной линии, но я сломал его для форматирования здесь версии одна строка:
JOptionPane.showMessageDialog(frame/* sets up the message, can also be replaced with null to remove formatting*/, "Eggs are not supposed to be green."/* this is your main message*/, "A plain message"/* this is what shows in the title spot (first parameter must not be null)*/, JOptionPane.PLAIN_MESSAGE/*shows no icon, also replacable with WARNING_MESSAGE, ERROR_MESSAGE, INFORMATION_MESSAGE*/);
без комментарии:
JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green.", "A plain message", JOptionPane.PLAIN_MESSAGE);
Приятно тронуть своих учителей Доктор Сьюз цитирует ваши программы.
- 1. allow_url_open должно быть на
- 2. Должно ли это быть оптимизировано?
- 3. Должно ли это быть выпущено?
- 4. Должно быть, должно быть двоичное дерево Хаффмана?
- 5. Должны ли обновляться графики JUNG на EDT?
- 6. Создание объекта на EDT
- 7. Java API «Запуск на EDT, если не на EDT»
- 8. Должно ли is_paranoid быть встроенным в Rails?
- 9. Должно ли fieldset быть в форме?
- 10. Должно ли быть определение Base dtor?
- 11. Должно ли быть экранировано в onclick = "..."?
- 12. Должно ли быть установлено statement_timeout внутри функции?
- 13. Должно ли ночное построение быть инкрементным?
- 14. Должно ли состояние компонента быть отдельным объектом?
- 15. Должно ли это быть POST или PUT
- 16. Будет ли System.Numerics.BigInteger неизменным? Должно быть?
- 17. GUI показан на EDT
- 18. Должно ли поле enum быть Serializable?
- 19. EDT на Swing (для чайников)
- 20. Не должно ли malloc быть асинхронным?
- 21. Не должно быть fb_sig_friends?
- 22. Что должно быть hadoop.tmp.dir?
- 23. Есть ли ярлык для System.out.println на Netbeans?
- 24. Проверьте, нужен ли поток EDT?
- 25. Должно ли это выражение последовательности быть рекурсивным?
- 26. Должно ли это быть промежуточным программным обеспечением?
- 27. clSetEventCallback, должно ли событие быть сохранено явно?
- 28. Realm, должно ли primaryKey быть между indexedProperties?
- 29. Должно ли `occs` быть доступным для программиста?
- 30. Должно ли частное недоступное поле быть окончательным?
Что-то еще не так. System.out.println (...) не заботится о том, в какой поток он вызван, и только вызовы метода Swing * необходимо вызвать в потоке событий Swing. –
nooo System.out.println ... это _root всего зла, а также уродливый, как ад. Вы можете выбрать как минимум 3 простых в установке, легкие фреймворки регистрации в java. (slf4j, log4j, logback и т. д.) –
Вы не сможете получить лучшую помощь без размещения кода. –