Avatar billede pham Nybegynder
07. maj 2003 - 14:02 Der er 6 kommentarer og
1 løsning

Gui frame åbner ny Gui frame

jeg har prøvet at følge dette spm: http://www.eksperten.dk/spm/218863 men når jeg skal køre mit prog. siger den: "MainGuiFrame.java": Error #: 308 : non-static method setVisible(boolean) cannot be referenced from a static context at line 73, column 16


min kode er:


kode fra constructoren i en MainGuiClass:

    LoginFrame loginFrame = new LoginFrame();
    //Validate frames that have preset sizes
    //Pack frames that have useful preferred size info, e.g. from their layout
    if (packFrame) {
      loginFrame.pack();
    }
    else {
      loginFrame.validate();
    }
    //Center the window
    Dimension loginScreenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension loginFrameSize = loginFrame.getSize();
    if (loginFrameSize.height > loginScreenSize.height) {
      loginFrameSize.height = loginScreenSize.height;
    }
    if (loginFrameSize.width > loginScreenSize.width) {
      loginFrameSize.width = loginScreenSize.width;
    }
    loginFrame.setLocation((loginScreenSize.width - loginFrameSize.width) / 2, (loginScreenSize.height - loginFrameSize.height) / 2);
    loginFrame.setVisible(false);


Kode fra Knappen:

void jButton2_actionPerformed(ActionEvent e) {
    LoginFrame.setVisible(true);
  }

class MainGuiFrame_jButton2_actionAdapter implements java.awt.event.ActionListener {
  MainGuiFrame adaptee;

  MainGuiFrame_jButton2_actionAdapter(MainGuiFrame adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton2_actionPerformed(e);
  }
}

jeg er meget ny så koden er taget direkte fra jBuilder..
Håber der er nogen der kan hjælpe mig..
sig hvis i skal bruge mere af min kode.. :-)
Avatar billede simonvalter Praktikant
07. maj 2003 - 14:05 #1
har du både en LoginFrame og en loginFrame ?

jeg tænker på om dette kunne have noget at gøre med det
void jButton2_actionPerformed(ActionEvent e) {
    LoginFrame.setVisible(true);
  }
Avatar billede pham Nybegynder
07. maj 2003 - 14:07 #2
jeg har en gui frame som hedder LoginFrame.java
Avatar billede simonvalter Praktikant
07. maj 2003 - 14:07 #3
for det er vel loginFrame du skal setVisible ?
Avatar billede pham Nybegynder
07. maj 2003 - 14:09 #4
når jeg ændre det til:
void jButton2_actionPerformed(ActionEvent e) {
    loginFrame.setVisible(true);
  }

får jeg følgende:

"MainGuiFrame.java": Error #: 300 : variable loginFrame not found in class gui_leporello.MainGuiFrame at line 73, column 5
Avatar billede simonvalter Praktikant
07. maj 2003 - 14:14 #5
den fejl den brokker sig over ... den siger vist at du prøver at kalde en statisk metode på LoginFrame klassen
og da den ikke er statisk kan du ikke gøre det

om det er smart at gøre den statisk så ved jeg ikke ..

men ellers er jeg sikker på at en af de andre haj'er ved det ;)
Avatar billede simonvalter Praktikant
07. maj 2003 - 14:26 #6
det virker fint sådan her

public class GLFrame
    extends JFrame
    implements Serializable {
  Frame1 frame = new Frame1();

.....


  void jButton2_actionPerformed(ActionEvent e) {
    frame.setVisible(true);

  }

  void jButton3_actionPerformed(ActionEvent e) {
frame.setVisible(false);
  }
Avatar billede lifo Nybegynder
07. maj 2003 - 16:29 #7
det er fordi du laver din referance til loginFrame i constructoren
så er den ikke kent udenfor
udenfor constructoren lav en referance til loginFrame

public LoginFrame loginFrame;

og inde i constructoren lave et object

loginFrame = new LoginFrame();

så skulle det funke
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester