0
제 문제는 "로그인"메뉴를 선택하면이 코드가 가운데에 새로운 버튼을 만드는 것입니다. 메뉴를 선택하면 "aaa"가 인쇄되지만 단추는 추가되지 않습니다. 어떻게 해결할 수 있습니까? 고맙습니다. 당신이 볼 GUI에 구성 요소를 추가 할 때JPanel이 MenuSelected에 추가되지 않았습니다.
public class NewJApplet extends JApplet {
static JPanel panel;
static Container content;
static JMenuBar menubar;
/**
* Initialization method that will be called after the applet is loaded into
* the browser.
*/
public void init() {
//panel = new JPanel();
//BorderLayout borderlayout = new BorderLayout();
//panel.setLayout(borderlayout);
panel = new JPanel();
BorderLayout borderlayout = new BorderLayout();
panel.setLayout(borderlayout);
menubar = new JMenuBar();
JMenu login = new JMenu("Login");
menubar.add(login);
login.addMenuListener(new MenuListener(){
public void menuSelected(MenuEvent e) {
System.out.println("aaa");
//menubar.setVisible(false);
panel.add(new JButton("add"), BorderLayout.CENTER);
}
public void menuCanceled(MenuEvent e) {
}
public void menuDeselected(MenuEvent e) {
}
});
JMenu arizabildirimformu = new JMenu("Arıza Bildirim Formu");
menubar.add(arizabildirimformu);
setJMenuBar(menubar);
//panel.add(new JButton("add"), BorderLayout.CENTER);
//panel.add(menubar, BorderLayout.NORTH);
// TODO start asynchronous download of heavy resources
content = getContentPane();
content.setLayout(new GridBagLayout());
content.add(panel);
}
}
단추를 추가 한 후 애플릿에서 revalidate를 호출 해보십시오. 재 페인트를 호출해야 할 수도 있습니다. – MadProgrammer
한 공간에있는 많은 구성 요소의 경우 ['CardLayout'] (http://docs.oracle.com/javase/7/docs/api/java/)을 사용하십시오. awt/CardLayout.html) [짧은 예제] (http://stackoverflow.com/a/5786005/418556)에서 볼 수 있습니다. –