Avatar billede ozrob Nybegynder
24. april 2004 - 18:09 Der er 9 kommentarer

2 stk. gui vinduer

Jeg sad lige og filosoferede over om det er muligt at oprette 2 eller flere vinduer når man laver en gui..?
Avatar billede martinbk Nybegynder
24. april 2004 - 18:11 #1
tjo burde da være mugligt, hvis du opretter en klasse der extender JFrame og derefter skaber 2 instancer af den klasse i din mainmetode, så har du 2 vinduer
Avatar billede arne_v Ekspert
24. april 2004 - 18:11 #2
Selvfølgelig.

2 objekter af to eller samme klasse som extender JFrame - og du har 2 vinduer.
Avatar billede ozrob Nybegynder
24. april 2004 - 18:21 #3
Hvis nu der er to forskellige gui'er så skal man lave dem i to forskellige klasser ik?
Avatar billede arne_v Ekspert
24. april 2004 - 18:22 #4
det vil jeg tro
Avatar billede ozrob Nybegynder
24. april 2004 - 18:25 #5
Totalt cool! Og her til sidst, hvordan defiere man hvor vinduerne skal starte på skærmen?
Avatar billede arne_v Ekspert
24. april 2004 - 18:27 #6
Aner det ikke, så skrap er jeg heller ikke til GUI.
Avatar billede martinbk Nybegynder
24. april 2004 - 18:30 #7
jo.
et eks. :
public class MinFrame extends JFrame() {
  jMenuBar jMenuBar = new JMenuBar();
  jMenu jMenuFile = new JMenu();
  JMenuItem jMenuFileExit = new JMenuItem();
 
  public MinFrame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
  }

  private void JbInit() throws Exception {
    jMenuFile.setMnemonic('F');
    jMenuFile.setText("Fil");
    jMenuFileExit.setMnemonic('X');
    jMenuFileExit.setText("Exit");
    jMenuFileExit.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuFileExit_actionPerformed(e);
      }
    });
    jMenuBar.add(jMenuFile);
}

ville ved oprettelse af en instans give dig et ret kedeligt vindue med en File menu hvor du så kunne vælge exit

vil du så have et andet vindue (f.eks. med andre menu punkter) er du nød til at lave en anden klasse som du så kan skabe en instans af
Avatar billede martinbk Nybegynder
24. april 2004 - 18:33 #8
og for at svare på dit sidste spørgsmål, kig lidt på følgende:

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.UIManager;

public class MinApp {
  boolean packFrame = false;
 
  public MinApp() {
    MinFrame frame = new MinFrame();
    if (packFrame) {
      frame.pack();
    }
    else {
      frame.validate();
    }
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height > screenSize.height) {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) {
      frameSize.width = screenSize.width;
    }
    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
    frame.setVisible(true);
  } 
  public static void main(String[] args) {
    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    new MinApp();
  } 
}
Avatar billede martinbk Nybegynder
24. april 2004 - 18:57 #9
men for at udpensle det lidt så har java.awt.Component 3 interresante metoder:
  setLocation(int x, int y);
  setBounds(int x, int y, int width, int hight);
  setBounds(Rectangle r);

setLocation sætter vinduet på den position du måtte ønske (pixels målt fra øverste-venstre hjørne af skærmen)
setBounds (begge udgaver) både flytter og resizer vinduet, den ene blot vedhjælp af klassen Rectangle
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