2013-07-14 16 views
13

Mam klasę JFrame i została ona wykonana w sekcji projektowania na Netbeans. Próbuję zrobić przycisk logowania, który zamyka bieżącą klatkę i otwiera inną, czy mogę to zrobić?Jak zrobić przycisk JFrame otworzyć inną klasę JFrame w Netbeans?

Próbowałem:

JFrame frame = new JFrame(); 

Ale ma to być edytowalne w dziale projektowania!

+2

Zobacz [Korzystanie z wielu ramek JF, dobra/zła praktyka?] (Http://stackoverflow.com/a/9554657/418556) –

Odpowiedz

18

dwukrotnie kliknij przycisk Zaloguj się w NetBeans lub dodać detektor zdarzeń na zdarzenie click (ActionListener)

btnLogin.addActionListener(new ActionListener() 
{ 
    public void actionPerformed(ActionEvent e) { 
     this.setVisible(false); 
     new FrmMain().setVisible(true); // Main Form to show after the Login Form.. 
    } 
}); 
+4

Lepiej użyć 'this.dispose()' zamiast tego uczynić ją niewidoczną, ponieważ nadal będzie działał bez żadnego użycia. – Azad

+0

Tak, to prawda. Ale myślałem, że podczas gdy Forma jest wyrzucona, może powrócić do Głównej Funkcji bez pokazywania FrmMain .. OOPS ... Myślałem, że Kod zostanie zatrzymany, wtedy ... –

+1

Świetna myśl :) Kod nie zostanie zatrzymany przed wykonaniem wszystkie instrukcje wewnątrz metody ActionPerformed. – Azad

3

Ten link działa ze mną: video

Odpowiedź pisał zanim nie działa na ja dopiero drugi kliknij

Więc co zrobiłem jest bezpośrednio zadzwonić:

 new NewForm().setVisible(true); 

     this.dispose();//to close the current jframe 
4
new SecondForm().setVisible(true); 

Możesz użyć metody setVisible(false) lub dispose(), aby zniknąć z bieżącego formularza.

0
JFrame.setVisible(true); 

Można użyć setVisible(false) lub dispose() sposób zniknąć obecnej formie.