2012-10-05 4 views
-2

안녕하세요 stackoverflow 개발자 나는 그것에 두 개의 메뉴를 가지고 스윙에서 양식을 설계했습니다. 메뉴를 onclicking 나는 그것에 jinternal 프레임을 추가하고 싶습니다. jinternalframe에서 버튼을 클릭 한 후 jinternalframe을 제거하고 jframe 폼에 새로운 컨트롤을 추가해야합니다.jframe과 jinternalframe 사이의 전환

 import javax.swing.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    import javax.event.*; 

class MainMenu extends JFrame implements ActionListener 
    { 
    JMenuBar mb; 
    Menu field,test; 
    MainMenu() 
    { 
    Container cp=this.getContentPane(); 
    mb= new JMenuBar(); 
    field1= new JMenu("field1"); 
    test=new JMenu("test"); 
    mb.add(field1); 
    mb.add(test); 

    setJMenuBar(mb); 
    field1.addActionListener(this); 
test.addActionListener(this); 


} 

public void actionPerformed(ActionEvent ae) 
    { 
    if(ae.getActionCommand().equals("field1"); 
    { 
    jinternalframe1 frm= new jinternalframe(); 
    cp.add(frm); 
     frm.setBounds(0,0,600,600); 
    } 

    } 

    public static void main(String args[]) 
    { 

    MainMenu frm = new MainMenu(); 
    frm.setSize(1000,1000); 
    frm.setVisible(true); 
    } 


} 

public class jinternalframe1 extends JInternalFrame implements ActionListener 
{ 

JButton jb1,jb2; 

jinternalframe1() 
{ 
jb1= new JButton("1"); 
jb2=new JButton("2"); 
add(jb1); 
add(jb2); 
jb1.addActionListener(this); 
jb2.addActionListener(this); 


} 

public void actionPerformed(ActionEvent ae) 
    { 
    if(ae.getActionCommand().equals("1")) 
    { 
    JButton nn= new JButton("back"); 
    MainMenu frm= new MainMenu(); 
    frm.cp.add(nn); 
    //this is creating new Form but i want to add the new button control instead of add  //jinternal frame 

    } 
    } 

}

+1

설명하는 문제를 설명하는 [sscce] (http://sscce.org/)를 포함하여 질문을 편집하십시오. – trashgod

답변

1

메인 클래스 객체를 가리 키도록 jinternalframe1 클래스에서 선언 귀하의 JInternalFrame를

jinternalframe1 frm= new jinternalframe(this); 

에 MAINMENU의 객체를 기본 폼의 인스턴스를 전달합니다.

MainMenu myParent; 

는 인스턴스를 myParent하는 새로운 버튼을 추가하여의 actionPerformed에 MAINMENU 인스턴스를 다음

jinternalframe1(MainMenu parent){ 

    myParent = parent; 

    //rest of your code 
} 

그리고를 허용하도록 jinternalframe1 생성자를 수정합니다.

if(ae.getActionCommand().equals("1")){ 
myParent.add(new JButton("back")); 
} 

하지만 이것은 좋은 습관이 아닙니다. 그리고 쓰레기로 말한대로 코드는 sscce 희망이 없습니다.

관련 문제