Avatar billede soeborg Nybegynder
27. september 2002 - 12:26 Der er 11 kommentarer og
3 løsninger

Hjælp til Java

Hej experter.
Jeg har 3 spørgsmål, der giver 66 point hver!

1.
Hvordan får man en filmenu til et vindue (ligesom: filer -> Åben, Gem, Afslut) Kode til add også :-)

2.
Kan man ikke få dospromten (laver det i windows) til at lukke når man lukker et program.?

3.
Action.. Hvordan kan man dobbelt klikke på et icon og derefter åbne et nyt vindue?

Håber på nogle fyldige svar!
På forhånd tak..
Avatar billede riversen Nybegynder
27. september 2002 - 12:53 #1
1.
http://nostromo.ikasths.dk/docjava/gui/widgets/menuer/menuer.htm

2.
Hvis du laver en batch fil som starter programmet, kan du tilføje exit i slutningen af filen. Ellers tror jeg ikke det er muligt.

3. Tilføj en actionlistener som opretter et nyt vindue ved dobbeltklik
Avatar billede mortenkjeldberg Nybegynder
27. september 2002 - 12:54 #2
Hej

Jeg mener det er sådan her. Har dog ikke lige en bog at tjekke efter i.

JMenuBar myMenu = new JMenuBar;
JMenu fileMenu = new JMenu("filer");
JMenuItem open = new JMenuItem("Open");

fileMenu.add(open);
myMenu.add(fileMenu);
FRAME.setJMenuBar(myMenu);

hvor frame er navnet på din frame.

hilsen
Morten
Avatar billede mortenkjeldberg Nybegynder
27. september 2002 - 12:54 #3
Det var til 1'eren
Avatar billede dsj Nybegynder
27. september 2002 - 13:05 #4
1.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Frame1 extends JFrame {
  JPanel contentPane;
  // Du laver en menuBar
  JMenuBar jMenuBar1 = new JMenuBar();
  // Nogle menupunkter til menuBar'en instantieres
  JMenu jMenuFile = new JMenu();
  JMenu jMenuHelp = new JMenu();
  // Sidst laves nogle "underpunkter", som skal stå i ovenstående menupunkter
  JMenuItem jMenuFileExit = new JMenuItem();
  JMenuItem jMenuHelpAbout = new JMenuItem();

  public Frame1() {
    // Der puttes noget tekst på menupunkter og der add's actionlistener's
    jMenuFile.setText("File");
    jMenuFileExit.setText("Exit");
    jMenuFileExit.addActionListener(new ActionListener()  {
      public void actionPerformed(ActionEvent e) {
        jMenuFileExit_actionPerformed(e);
      }
    });
    jMenuHelp.setText("Help");
    jMenuHelpAbout.setText("About");
    jMenuHelpAbout.addActionListener(new ActionListener()  {
      public void actionPerformed(ActionEvent e) {
        jMenuHelpAbout_actionPerformed(e);
      }
    });
    // Her laves selve menustrukturen
    jMenuFile.add(jMenuFileExit);
    jMenuHelp.add(jMenuHelpAbout);
    jMenuBar1.add(jMenuFile);
    jMenuBar1.add(jMenuHelp);
    this.setJMenuBar(jMenuBar1);
  }

  // Herunde findes de metoder der indeholder hvad der sker, når der trykkes på et menupunkt, f.eks. "Open file"
  public void jMenuFileExit_actionPerformed(ActionEvent e) {
    System.exit(0);
  }
 
  public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
  }
 
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      jMenuFileExit_actionPerformed(null);
    }
  }
}
Avatar billede =maddog= Nybegynder
27. september 2002 - 13:19 #5
hvorfor fanden har den ikke postet det lightweight dobbletclick ikon jeg lige har lavet??
to minutter så strikker jeg det sammen igen.
Avatar billede =maddog= Nybegynder
27. september 2002 - 13:24 #6
class DblClickIcon extends Component {
    ActionListener actionListener;    // Post action events to listeners
    int w,h;
    Image img;
    public DblClickIcon(int w, int h, Image img) {
        this.w= w;
        this.h= h;
        this.img= img;
        enableEvents(AWTEvent.MOUSE_EVENT_MASK);
    }
    public TransparentButton(boolean round) { this("",round); }
    public TransparentButton(String label) { this(label,false); }
    public TransparentButton() { this("",false); }
    public Dimension getPreferredSize() {return new Dimension(w,h);}
    public Dimension getMinimumSize() { return getPreferredSize(); }
    public void update(Graphics g) { paint(g); }
    public void paint(Graphics g) {
        if (image!=null) { g.drawImage(image,0,0,getSize().width,getSize().height,this); imagedrawn=true;}
    }
    public void addActionListener(ActionListener listener) {
        actionListener = AWTEventMulticaster.add(actionListener, listener);
        enableEvents(AWTEvent.MOUSE_EVENT_MASK);
    }
    public void removeActionListener(ActionListener listener) {
        actionListener = AWTEventMulticaster.remove(actionListener, listener);
    }
    public void processMouseEvent(MouseEvent e) {
        switch(e.getID()) {
        case (MouseEvent.MOUSE_CLICKED|BUTTON_MASK1):
            if(e.getClickCount()>=2) {
                actionListener.actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, this));
            }
        break;
        case MouseEvent.MOUSE_ENTERED:
// Cursor ting
        break;
        case MouseEvent.MOUSE_EXITED:
// Cursor ting
        break;
        }
        super.processMouseEvent(e);
    }
}

Tilgiv skønhedfejl. Det gik lidt stærkt denne gang.
Avatar billede =maddog= Nybegynder
27. september 2002 - 13:25 #7
public TransparentButton(boolean round) { this("",round); }
    public TransparentButton(String label) { this(label,false); }
    public TransparentButton() { this("",false); }

er copy/paste skrald. ignorer.
Avatar billede =maddog= Nybegynder
27. september 2002 - 13:27 #8
Og det skal være
      case (MouseEvent.MOUSE_CLICKED|MouseEvent.BUTTON_MASK1):
hold kæft det er godt det snart er weekend!!!!
Avatar billede =maddog= Nybegynder
27. september 2002 - 13:28 #9
case (MouseEvent.MOUSE_CLICKED|MouseEvent.BUTTON1_MASK):
HULK HULK.
Jeg lover at teste det næste gang :-(.
Avatar billede soeborg Nybegynder
27. september 2002 - 14:11 #10
ja det er jo gode kodelinier jeg har fået der, men jeg kan sku ikke få dem til at virke :-( Fatter ikke en krone af hvad jeg gør galt!
-> Dsj.. Den mangler en main?!? Det har jeg lavet og nej, det virker ikke..
-> Maddog.. Har importet det der skulle, men får fejl i image linie..
Avatar billede dsj Nybegynder
27. september 2002 - 14:22 #11
Det var også kun et ekspempel på, hvordan du laver en menulinie, ikke hvordan du starter et program.

public static void main(String[] args) {
  Frame1 f = new Frame1();
  f.setVisible(true);
}
Avatar billede soeborg Nybegynder
27. september 2002 - 14:27 #12
jaja men mortens fik jeg til at virke med det samme ved at sætte det ind i mit program... ;-)
Avatar billede soeborg Nybegynder
27. september 2002 - 14:29 #13
nå den fuckede lige lidt med pointene.! Maddog gider du lave et svar her
http://www.eksperten.dk/spm/263213
takker for hjælpen alle sammen!
Avatar billede =maddog= Nybegynder
27. september 2002 - 14:34 #14
public void paint(Graphics g) {
        if (img!=null) { g.drawImage(img,0,0,getSize().width,getSize().height,this); imagedrawn=true;}
    }
så skulle det virke (tror jeg). image->img
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