2014-07-17 5 views
0

프로젝트에서 작업 중입니다. 패널 클래스에서 데스크톱 창에서 두 번째 iframe을 호출하기 위해 mouselistener를 정의했지만 표시되지 않습니다.JinternalFrame이 표시되지 않고 예외도 없음

제발 도와주세요 감사

메인 클래스

public class Try2 extends JFrame{ 

JTabbedPane pane; 
public Try2() { 

    setSize(800,500); 
    setDefaultCloseOperation(Try2.EXIT_ON_CLOSE); 
    setVisible(true); 


    pane=new JTabbedPane(); 
    pane.addTab("First", new desktoppane()); 
    pane.addTab("Second", new JPanel()); 


    setContentPane(pane); 

} 
public static void main(String[] args) { 
    new Try2(); 
} 

DesktopPane 클래스

public class desktoppane extends JDesktopPane{ 

public desktoppane() { 
    // setOpaque(false); 
    JButton btnfirst=new JButton("First IFrame"); 
    btnfirst.setSize(150,25); 
    add(btnfirst); 
    btnfirst.addMouseListener(new MouseListener() { 

     @Override 
     public void mouseClicked(MouseEvent e) { 

     first f=new first(); 
     add(f); 
     } 

     @Override 
     public void mousePressed(MouseEvent e) { 
     } 

     @Override 
     public void mouseReleased(MouseEvent e) { 
     } 

     @Override 
     public void mouseEntered(MouseEvent e) { 
     } 

     @Override 
     public void mouseExited(MouseEvent e) { 
     } 
    }); 

} 

}

우선 IFrame을

public class first extends JInternalFrame{ 

public first() { 
    setSize(400, 400); 
    setVisible(true); 
    setClosable(true); 

    add(new paneel()); 

} 

}

패널 클래스

public class paneel extends JPanel{ 

public paneel() { 
    setBackground(Color.red); 
    setSize(200,200); 
    JButton btnSecond=new JButton("Second IFrame"); 
    btnSecond.setSize(150,25); 
    add(btnSecond); 

    btnSecond.addMouseListener(new MouseListener() { 

     @Override 
     public void mouseClicked(MouseEvent e) { 
      Second s=new Second(); 
      desktoppane p=new desktoppane(); 

      p.add(s); 


     } 

     @Override 
     public void mousePressed(MouseEvent e) { 
     } 

     @Override 
     public void mouseReleased(MouseEvent e) { 
     } 

     @Override 
     public void mouseEntered(MouseEvent e) { 
     } 

     @Override 
     public void mouseExited(MouseEvent e) { 
     } 
    }); 




} 

}

둘째 IFrame을

public class Second extends JInternalFrame{ 

public Second() { 
    setSize(400, 400); 
    setVisible(true); 
    setClosable(true); 

    setBackground(Color.yellow); 
} 

답변

2

패널 클래스에 새 데스크톱 창을 만들지 만 아무 것도 추가하지 않습니다. 아마 JFrame에 추가되어야합니다. 또는 기존 데스크톱 창에 IFrame을 추가하고 새로 추가하지 않을 수도 있습니다.