Попытка прекратить поворот gui, начать тот же gui и прекратить его.Как я могу программно завершить графический интерфейс swing?
Я использую ответ на этот вопрос question, но он работает только один раз.
ниже код циклов один раз и зависаний после печати 2.
import java.awt.Toolkit;
import java.awt.event.WindowEvent;
import java.lang.reflect.InvocationTargetException;
import javax.swing.*;
public class Hello {
void createAndShowGUI() {
frame=new JFrame("HelloWorldSwing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label=new JLabel("Hello World");
frame.getContentPane().add(label);
frame.pack();
frame.setVisible(true);
}
void goodbye() {
WindowEvent wev=new WindowEvent(frame,WindowEvent.WINDOW_CLOSING);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(wev);
}
static void helloGoodbye() throws InterruptedException,InvocationTargetException {
System.out.println("enter");
final Hello hello=new Hello();
System.out.println("1");
javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
System.out.println("3");
hello.createAndShowGUI();
System.out.println("4");
}
{
System.out.println("2");
}
});
System.out.println("5");
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
hello.goodbye();
System.out.println("6");
}
});
// Thread.sleep(1000);
System.out.println("exit");
}
public static void main(String[] args) throws InvocationTargetException,InterruptedException {
for(int i=0;i<10;i++)
helloGoodbye();
System.out.println("exiting main");
}
JFrame frame;
}
Почему это не работает?
Chit, ваш код даже не компилируется. Но также важно, какова ваша цель. На ваш вопрос звучит так, как будто вы хотите начать, остановиться, а затем запустить и остановить графический интерфейс Swing? Зачем? Какой опыт пользовательского интерфейса вы водите? –
он компилируется для меня в затмении. Я использовал jdk 8. Я добавлю финал. каждый вызов сохранит изображение gui в файле. –
Вы не указали модификатор доступа «final» в своем объявлении переменной Hello, поэтому нет, он не должен компилироваться. –