2012-10-05 96 views
-2

嗨,stackoverflow开发人员我必须设计一个摆动窗体上有两个菜单。点击一个菜单,我想添加一个jinternal框架。然后在点击内框上的按钮之后,内框应该被移除并且应该在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

传递主窗体的实例您的JInternalFrame

jinternalframe1 frm= new jinternalframe(this); 

声明的MainMenu的对象在jinternalframe1类指向主类对象。

MainMenu myParent; 

修改您jinternalframe1构造函数接受MainMenu的实例

jinternalframe1(MainMenu parent){ 

    myParent = parent; 

    //rest of your code 
} 

然后在您的actionPerformed添加新的按钮myParent实例。

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

但让我告诉你,这根本不是一个好习惯!正如垃圾桶所说的,你的代码不是sscce 希望能帮助你。