Avatar billede gruppen Nybegynder
06. november 2001 - 11:01 Der er 2 kommentarer og
1 løsning

popup vindue i swing

Hej - jeg er har et java vindue (Jframe)
og en menulinie - med de standard punkter ( filer - hjælp - tilføj osv.)
det jeg så har brug for er at - når man ex. vis vælger tilføj - og et underpunkt dertil så åbner den en ny Jframe oveni.
Dette lyder måske meget kryptisk. Men det er meget simpelt - hvis du bruger IE - så gå op i Tools(funktioner) vælg internet options - så åbner den en ny frame foran det allerede kørende program i baggrunden - det er det jeg vil - men ved ikke helt hvordan.
Skal man bruge en ActionListener ?? hvis ja hvordan ???
Avatar billede korup Nybegynder
06. november 2001 - 11:14 #1
Hej
JEg ved ikke om det hjælper men her er lidt kode hvor jeg kalder et nyt window..


public class <ditnavn> extends JFrame implements ActionListener
{
lala....

  public <ditnavn>()
  {
    //Sætter ActionListener til at lytte ved dine knapper
    afslut.addActionListener(this);
    browsing.addActionListener(this);
    boger.addActionListener(this);
    bruger.addActionListener(this);
    udlaan.addActionListener(this);
    aflevering.addActionListener(this);
  }
  public void actionPerformed(ActionEvent knap)
  {
    if (knap.getSource() == afslut)  // Afslut Knappen
      System.exit(0);
    else if (knap.getSource() == browsing)  // Browsing knappen
      {
      browsing soeg = new browsing();
      soeg.show();
      }
    else if (knap.getSource() == boger)  //Bog Knappen
      {
        admin adgang = new admin(\"Bog arkiv\");
        adgang.show();

      }
    else if (knap.getSource() == bruger)  //Bog Knappen
      {
        admin adgang = new admin(\"Admin af brugere\");
        adgang.show();

      }
    else if (knap.getSource() == udlaan)  //Bog Knappen
      {
        admin adgang = new admin(\"Udlån af bøger\");
        adgang.show();

      }
    else if (knap.getSource() == aflevering)  //Bog Knappen
      {
        admin adgang = new admin(\"Aflevering af Bøger\");
        adgang.show();

      }

  }

}


/korup
Avatar billede logical Nybegynder
07. november 2001 - 08:10 #2
Du bruger en JDialog.
En Frame er et applikationsvindue, mens en JDialog er et undervindue i en applikation. En JDialog tager en JFrame som argument i konstruktøren, og du kan også angive om din dialog er modal, dvs. om man må komme tilbage til baggrundsvindue mens dialogen vises.

Gør følgende i din kodestump:

private JDialog d = null;
public void showSubMenuDialog() {
  if (d == null) {
      d = new JDialog(frame, \"Title as usual\", true); // Modal vindue på frame
      JButton b = new JButton(\"Close\");
      b.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              closeSubMenuDialog();
            }
      });
      d.getContentPane().add(b);
      d.pack();
  }
  d.setVisible(true);
}

private void closeSubMenuDialog() {
  if (d != null)
    d.setVisible(false);
}
Avatar billede trp79 Nybegynder
08. marts 2003 - 23:16 #3
Hej Logical
Hvis man nu har den JDialog inde i en frame som er åbnet fra en anden klasse. Hvad skrive man så i stedet for frame i denne linie:
d = new JDialog(frame, \"Title as usual\", true); // Modal vindue på frame

?
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