Avatar billede babynamnam Nybegynder
30. juni 2002 - 12:23 Der er 15 kommentarer og
1 løsning

applikationsmenu

Jeg har lavet et program som jeg gerne vil kunne starte og stop fra en menu.
Dvs. at jeg skal få en menu frem hvor jeg så kan starte min program class fil ved at klikke på en Jbutton og ligeledes stoppen det igen.
Avatar billede Slettet bruger
30. juni 2002 - 14:26 #1
Kan du ikke uddybe det lidt mere?
Er det en GUI du vil have frem?
Eller er det et program som kører i baggrunden? Hvis det er det, skal det så stoppes via den samme JButton eller en anden?? (man kan sagtens lave så teksten på JButton bliver ændret fra f.eks "Start" til "Stop")
Avatar billede babynamnam Nybegynder
30. juni 2002 - 23:47 #2
Ja det er vel en GUI jeg vil have....der må gerne være en JButton til "start" og en til "Stop".
Det skal altså virke på den måde at når jeg starter menuen så skal jeg der igennem kunne starter mit program bestående af en class fil der hedder Sekvensen.class og derefter kunne stoppen den igen!
Avatar billede Slettet bruger
01. juli 2002 - 00:38 #3
Først og fremmest skal du lave en EventListener:

JButtonStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {

//Indsæt her koden til at starte din class fil.
     
}
});

Derefter laver du en EventLister til JButtonStop, der kan du bruge den samme som den du lige har fået. Jeg dog ikke i hovedet huske hvordan du lukker og slukker for et vindue.
Men det er vist nok noget med JFrame.setEnabled(false);
Bare for at være sikker bør du lige følge op på det i API'en
Avatar billede aslan Nybegynder
01. juli 2002 - 11:10 #4
Det du eventuelt kunne gøre er at gøre dit program usynlig når du starter hele systemet : frame.setVisible(false);

Og når programet skal ses gøre den synlig igen:

JButtonStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {

frame.setVisible(true);     
}
});
Avatar billede aslan Nybegynder
01. juli 2002 - 11:12 #5
Ellers bliver vi lige nød til at se Sekvensen.class....
Avatar billede babynamnam Nybegynder
01. juli 2002 - 18:16 #6
Kan en af jer ikke give et eks. på hvordan en class fil indeholdende en menu med en enkelt JButton som der starter en anden class fil, ser ud!
Avatar billede aslan Nybegynder
01. juli 2002 - 20:05 #7
Jamen kig her:

http://java.sun.com/docs/books/tutorial/uiswing/components/tabbedpane.html

Jeg har selv gjort det således ,men regner ikke med at du kan overskue det:

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


public class MainFrame extends JPanel
{
    final static ConnectDB db = new ConnectDB( "jdbc:mysql://localhost/Hotel_Lazy", "aslan", "" );
    //final static ConnectDB db = new ConnectDB( "jdbc:interbase://localhost/C:/Documents and Settings/aslan/Skrivebord/modelKomponent/HOTEL.GDB", "sysdba", "masterkey" );
    public MainFrame() throws IOException
    {
        ImageIcon icon = new ImageIcon("ikon.gif");
        //UIManager.put("TabbedPane.selected", Color.cyan);
        JTabbedPane tabbedPane = new JTabbedPane();
        tabbedPane.setFont(new Font("Serif", Font.BOLD, 13));



        Gaest g = new Gaest(db);
        Reservation r = new Reservation(db);
        Funktioner f = new Funktioner();
        Værelse v = new Værelse(db);

        checkInd ankomst = new checkInd(v);

        Opslag opslag = new Opslag(r,v,g,db,ankomst,tabbedPane,f);

        ReservationG res  = new ReservationG(r,f,g,opslag,tabbedPane,ankomst);
        opslag.setReferenceTilReservationG(res);


        GaestG gæst = new GaestG(g,opslag,tabbedPane,res,ankomst);
        opslag.setReferenceTilGaestG(gæst);
        res.setReferenceTilGæstG(gæst);


        VærelseG vær = new VærelseG(g,v,opslag,tabbedPane,res);
        opslag.setReferenceTilVærelseG(vær);
        res.setReferenceTilVærelseG(vær);

        tabbedPane.addTab("Gæst", icon, gæst.getContentPane());

        tabbedPane.addTab("Reservation", icon, res.getContentPane());

        tabbedPane.addTab("Værelse",icon,vær.getContentPane());

        tabbedPane.addTab("Opslag",icon,opslag.getContentPane());

        Faktura fak = new Faktura(db);
        FakturaG regning = new FakturaG(fak,r,v,g,db,tabbedPane,f,gæst);
        gæst.setReferenceTilFakturaG(regning);


        setLayout(new GridLayout(1, 1));

        add(tabbedPane);

        ankomst.setBounds(450,400,170,150);
        ankomst.setTitle("CheckInd");
        ankomst.setResizable(false);
        ankomst.setVisible(false);

        regning.setBounds(235,5,600,750);
        regning.getContentPane().setBackground(Color.white);
        regning.setTitle("FAKTURA");
        regning.setResizable(false);
        regning.setVisible(false);
    }

    protected Component makeTextPanel(String text)
    {
        JPanel panel = new JPanel(false);
        JLabel filler = new JLabel(text);

        filler.setHorizontalAlignment(JLabel.CENTER);
        panel.setLayout(new GridLayout(1, 1));
        panel.add(filler);

        return panel;
    }

    public static void main(String[] aslan) throws IOException
    {
        JFrame frame = new JFrame("Hotel Lazy");
        frame.getContentPane().add( new MainFrame(), BorderLayout.CENTER );
        frame.setBounds(150,120,740,550);
        frame.setTitle("Hotel Lazy");
        frame.setResizable(false);
        frame.setVisible(true);

    }
}
Avatar billede babynamnam Nybegynder
01. juli 2002 - 20:41 #8
ok nu har jeg fået lavet en lille applikationsmenu indeholdende en Jbutton som starter Sekvensen.class. Nu manlger jeg bare at kunne stoppe/afbryde Sekvensen.class igen.

source koden er herunder:

package picdif;

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

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/

public class Frame1 extends JFrame {
  JPanel contentPane;
  BorderLayout borderLayout1 = new BorderLayout();
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();

  //Construct the frame
  public Frame1() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception  {
    //setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]")));
    contentPane = (JPanel) this.getContentPane();
    jButton1.setText("jButton1");
    contentPane.setLayout(borderLayout1);
    this.setSize(new Dimension(400, 300));
    this.setTitle("Frame Title");
    jButton2.setText("jButton2");
    contentPane.add(jButton1, BorderLayout.WEST);
    contentPane.add(jButton2, BorderLayout.CENTER);
  }
  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Sekvensen s = new Sekvensen();


}
});
jButton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
*******her skal koden til at afbryde Sekvensen.class være*********


}
});
  }
}
Avatar billede aslan Nybegynder
01. juli 2002 - 20:59 #9
Det eneste jeg kan se er at du har smidt en masse komponenter på en Jframe hvor er det program du snakker om?
Avatar billede babynamnam Nybegynder
01. juli 2002 - 21:18 #10
programmet er Sekvensen.class og det køre i baggrunden når jeg har klikket på jButton1...det der så skal ske er at når jeg så klikker på jButton2, så skal Sekvensen.class som køre i baggrunden stoppes!
Avatar billede aslan Nybegynder
01. juli 2002 - 21:27 #11
Hvis du lige sørger for at hele classen kan få fat i Sekvensen.class kunne du forsøge dig med s.dispose(); på jButton2
Avatar billede babynamnam Nybegynder
01. juli 2002 - 22:16 #12
aslan ...jeg er ikke helt med på det der med s.dispose();...hvis jeg smider det ind under jButton2 får jeg fejl....


jButton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {

s.dispose();

}
});
Avatar billede aslan Nybegynder
01. juli 2002 - 23:11 #13
Jamen har du sørget for at hele din classe kan få fat i Sekvensen.class ?

eller prøv lige sådan...

package picdif;

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

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2002</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/

public class Frame1 extends JFrame {
  JPanel contentPane;
  BorderLayout borderLayout1 = new BorderLayout();
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  Sekvensen s = new Sekvensen();
  s.setVisible(false);
  //Construct the frame
  public Frame1() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception  {
    //setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]")));
    contentPane = (JPanel) this.getContentPane();
    jButton1.setText("jButton1");
    contentPane.setLayout(borderLayout1);
    this.setSize(new Dimension(400, 300));
    this.setTitle("Frame Title");
    jButton2.setText("jButton2");
    contentPane.add(jButton1, BorderLayout.WEST);
    contentPane.add(jButton2, BorderLayout.CENTER);
  }
  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {

s.setVisible(true);

}
});
jButton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
s.setVisible(false);


}
});
  }
}
Avatar billede aslan Nybegynder
03. juli 2002 - 20:37 #14
Fandt du ud af det??
Avatar billede babynamnam Nybegynder
19. januar 2003 - 09:56 #15
tak for hjælpen!!!
Avatar billede aslan Nybegynder
19. januar 2003 - 11:40 #16
hehe.... det er over et halvt år siden jeg hjalp dig med det der :-) men ellers var det så lidt.
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