2013-10-04 1 views
0

Хорошо, я работаю над JApplet для моего школьного проекта. То, что я хочу, это каждый раз, когда нажимается JButton, «кнопка меню», он удаляет текущее содержимое контейнера, а затем добавляет новый JApplet в контейнер. У меня есть такая работа, единственная ошибка, которую я получаю, заключается в том, что она не перекрашивает содержимое контейнера, но если я отрегулирую окно (я использую appletviewer для его отображения в настоящее время), он отобразит то, что я хочу это для отображения. Ниже приведен пример кода, который я использую для моего actionPerformed метода ...actionPerformed заменяющее содержимое контейнера

public void actionPerformed(ActionEvent event) 
    { 
    if(event.getSource() == word_guess)//JButton 
    { 
     WordGuess w = new WordGuess(); //Applet wanted to be displayed 

     c.remove(main);//removes current content of container 
     c.remove(side); 
     c.setLayout(new GridLayout(1,0)); //changes Layout 
     c.add(w); 

     w.init(); //calls the init method of WordGuess 
     repaint(); //I tried to see if repainting would help, and it didn't 
    } 
} 
+0

1) * «Я работаю над JApplet для моего школьного проекта» * Зачем писать апплет в отличие от настольного приложения? Если это связано со спецификацией. учителем, пожалуйста, обратитесь к [Почему учителя CS должны прекратить преподавать Java-апплеты] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/). 2) Для многих компонентов в одном пространстве используйте ['CardLayout'] (http://docs.oracle.com/javase/7/docs/api/java/awt/CardLayout.html), как показано в этом [кратком примере ] (http://stackoverflow.com/a/5786005/418556). –

ответ

1

Вызова revalidate(); метода в конце операции.

+0

Возможно, именно этот графический интерфейс «CardLayout». –

0

Вы должны попытаться поместить repaint() вне блока if, возможно, это сработает?