Gå til innhold

Anbefalte innlegg

Skrevet

Jeg har to guiklasser (Gui1.java, Gui2.java), og lurer på hvordan jeg f.eks kan få åpnet Gui2 hvis jeg klikker på en knapp i Gui1, samtidig som Gui1 lukkes.

 

Noen som kan hjelpe meg her?

Videoannonse
Annonse
Skrevet

Prøvde noe slikt som dette, men det funker kun når man klikker én gang på en av knappene. Får feilmelding hvis man klikker flere ganger.

private class Knappelytter implements ActionListener{
 public void actionPerformed(ActionEvent hendelse){
 	if(hendelse.getSource() == btn1){
   gui2.setVisible(false);
   Gui1 gui1 = new Gui1();
 	}
 	else if(hendelse.getSource() == btn2){
   gui1.setVisible(false);
   Gui2 gui2 = new Gui2();
 	}
 }
}

Skrevet

vet ikke hvilken feilmelding du får, men det jeg tror er feil ligger i linjen Gui1 gui1 = new Gui1();. Du har tidligere hatt en gu1 som er satt usynlig, og du akn da ikke opprette et nytt objekt med samme navn... samme gjelder da for gui2. opprett variablene på utsiden, og sett visible(true/false) i metoden.

Skrevet (endret)

Du skal ha en knapp i hvert vindu som gjemmer det åpåne vinduet og åpner det andre?

 

du trenger én lytter som lytter på begge knappene (mulig du kun trenger én instans av JButton også)

 

slik kan metodespesifikasjonen se ut:

public void actionPerformed(ActionEvent e)
{

gui1.setVisible(synlig);
gui2.setVisible(!synlig);
synlig = !synlig;

}

 

synlig er en boolean-variabel som du deklarerer på klassenivå i klassen som lytter på knappene. slik metoden står, bør du initialisere synlig som false, hvis gui1 skal være det vindu som først dukker opp...

 

EDIT: Du må selvfølgelig ha instansiert gui2 først.

Endret av jhsveli
Skrevet

rivate class Knappelytter implements ActionListener{

public void actionPerformed(ActionEvent hendelse){

if(hendelse.getSource() == btn1){

gui2.setVisible(false);

Gui1 gui1 = new Gui1();

}

else if(hendelse.getSource() == btn2){

remove(gui1);

Gui2 gui2 = new Gui2();

 

}

}

}

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...