2013-08-14 1 views
1

Я хочу, чтобы dispose() мой текущий jFrame и перейти к следующему jFrame (StudentProfilepage()), но он показывает ошибку в this.dispose().Как переместить один кадр в другой в MouseListener

Как я могу сделать that.Here я использовал MouseListner в jLabel l1

Мой код следующим

l1.setCursor(Cursor.getDefaultCursor()); 

     l1.addMouseListener(new MouseAdapter() { 

     @Override 
     public void mouseReleased(MouseEvent e) { 

      //added check for MouseEvent.BUTTON1 which is left click 
      if (e.isPopupTrigger() || e.getButton() == MouseEvent.BUTTON1) { 

       this.dispose(); //error here(i want to close my current frame and move to StudentProfile() page 

       new StudentProfilePage().setVisible(true); 
      } 
     } 
    }); 
+0

Как вы относитесь к классу? –

+1

Пожалуйста, взгляните на [CardLayout] (http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html), этот набор лучше в данной ситуации. Для [примера] (http://stackoverflow.com/a/9349137/1057230) :-) –

ответ

3

this в

this.dispose(); 

относится к MouseAdapter, следовательно, ошибки компиляции вы смотри.

Вам нужно вызвать выбрасывайте на JFrame

JFrameClassName.this.dispose(); 

также рассмотреть возможность использования JDialog, а не JFrame как второе окно. Читать The Use of Multiple JFrames, Good/Bad Practice?

3

Вы должны написать

YourClassName.this.dispose(); 

, который указывает на ваш jframe.