Как мне запустить JOptionPane на EDT?
еще возникли проблемы с пробеломJOptionPane
s. На основе исследований в SO и вДокументы JavaЭто, очевидно, связано с тем, что вы не используетеEDT
, Мой вопрос, как именноEDT
и его методы применяются кJOptionPane
? Например, вывод ошибки терминала совершенно ясно показывает, чтоJOptionPane
ниже не работает наEDT
, Какие'отсутствует конкретно, а как же что то типаRunnable
вписаться?
import javax.swing.*;
public class PaneDemo
{
public static void main(String[] args)
{
final String[] TEXT ={
//message
"Hello, World!",
//title
"Greeting"};//end TEXT
showMyPane(TEXT);
}//end main
public static void showMyPane(final String[] TEXT)
{
JOptionPane.showMessageDialog(null, TEXT[0], TEXT[1],
JOptionPane.INFORMATION_MESSAGE);
if(!SwingUtilities.isEventDispatchThread())
{
System.err.println("Err: GUI failed to use EDT.");
}//end if(!SwingUtilities.isEventDispatchThread())
}//end showMyPane
}//end class PaneDemo
Ответ предложил добавитьinvokeLater
, Это неОднако в BlueJ он выглядит очень хорошо.
Также isEventDispatchThread () по-прежнему возвращает ошибку в терминале. Это просто потому, что он сейчас не в том месте?