Avatar billede aslan Nybegynder
29. april 2002 - 18:49 Der er 14 kommentarer og
1 løsning

åbne en ny panel?

Hvordan åbner jeg en ny panel via denne knap:

        søg = new JButton("Søg");
        c.insets = new Insets(10,250,0,0);
        c.gridx = 2;
        c.gridy = 1;
        gridbag.setConstraints(søg, c);
        contentPane.add(søg);
        søg.addActionListener(this);
Avatar billede disky Nybegynder
29. april 2002 - 18:52 #1
i actionperformed, added du et panel til den canvas du ønsker det på.
Avatar billede aslan Nybegynder
29. april 2002 - 18:54 #2
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Reservation extends JFrame implements ActionListener
{
    boolean inAnApplet = true;
    final boolean shouldFill = true;
    final boolean shouldWeightX = true;
    JButton opret,søg,opdater,slet,nyGæst,søgGæst,afslut,checkInd,checkUd;
    JTextField skrivNr,skrivUdlStart,skrivUdlSlut,gæstNr;

    public Reservation() {

        Container contentPane = getContentPane();
        GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints c = new GridBagConstraints();
        contentPane.setLayout(gridbag);

        c.fill = GridBagConstraints.HORIZONTAL;

        JLabel skriv = new JLabel("Reservations Nr");
        c.gridx = 0;
        c.gridy = 0;
        gridbag.setConstraints(skriv, c);
        contentPane.add(skriv);

        JLabel skriv2 = new JLabel("Dato Udlej. Start");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 1;
        gridbag.setConstraints(skriv2, c);
        contentPane.add(skriv2);

        JLabel skriv3 = new JLabel("Dato Udlej. Slut");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 2;
        gridbag.setConstraints(skriv3, c);
        contentPane.add(skriv3);

        checkInd = new JButton("CheckInd");
        c.insets = new Insets(10,0,0,0);
        c.gridx = 0;
        c.gridy = 3;

        gridbag.setConstraints(checkInd, c);
        contentPane.add(checkInd);

        JLabel skriv4 = new JLabel("Gæstnummer");
        c.insets = new Insets(30,0,0,0);
        c.gridx = 0;
        c.gridy = 4;
        gridbag.setConstraints(skriv4, c);
        contentPane.add(skriv4);

        skrivNr = new JTextField(10);
        c.insets = new Insets(0,20,0,0);
        c.gridx = 1;
        c.gridy = 0;
        gridbag.setConstraints(skrivNr, c);
        contentPane.add(skrivNr);

        skrivUdlStart = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 1;
        gridbag.setConstraints(skrivUdlStart, c);
        contentPane.add(skrivUdlStart);

        skrivUdlSlut = new JTextField(10);
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 2;
        gridbag.setConstraints(skrivUdlSlut, c);
        contentPane.add(skrivUdlSlut);


        checkUd = new JButton("CheckUd");
        c.insets = new Insets(10,20,0,0);
        c.gridx = 1;
        c.gridy = 3;
        gridbag.setConstraints(checkUd, c);
        contentPane.add(checkUd);

        gæstNr = new JTextField(10);
        c.insets = new Insets(30,20,0,0);
        c.gridx = 1;
        c.gridy = 4;
        gridbag.setConstraints(gæstNr, c);
        contentPane.add(gæstNr);

        opret = new JButton("Opret");
        c.insets = new Insets(0,250,0,0);

        c.gridx = 2;
        c.gridy = 0;
        gridbag.setConstraints(opret, c);
        contentPane.add(opret);

        søg = new JButton("Søg");
        c.insets = new Insets(10,250,0,0);
        c.gridx = 2;
        c.gridy = 1;
        gridbag.setConstraints(søg, c);
        contentPane.add(søg);

        opdater = new JButton("Opdater");
        c.insets = new Insets(10,250,0,0);
        c.gridx = 2;
        c.gridy = 2;
        gridbag.setConstraints(opdater, c);
        contentPane.add(opdater);

        slet = new JButton("Slet");
        c.insets = new Insets(10,250,0,0);
        c.gridx = 2;
        c.gridy = 3;
        gridbag.setConstraints(slet, c);
        contentPane.add(slet);

        nyGæst = new JButton("Ny Gæst");
        c.insets = new Insets(20,250,0,0);
        c.gridx = 2;
        c.gridy = 4;
        gridbag.setConstraints(nyGæst, c);

        contentPane.add(nyGæst);

        søgGæst = new JButton("Søg Gæst");
        c.insets = new Insets(10,250,0,0);
        c.gridx = 2;
        c.gridy = 5;
        gridbag.setConstraints(søgGæst, c);
        contentPane.add(søgGæst);

        afslut = new JButton("Afslut");
        c.insets = new Insets(20,250,0,0);
        c.gridx = 2;
        c.gridy = 6;
        gridbag.setConstraints(afslut, c);
        contentPane.add(afslut);


        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                if (inAnApplet) {
                    dispose();
                } else {
                    System.exit(0);
                }
            }
        });
    }
    public void actionPerformed( ActionEvent e )
    {

          if( e.getSource() == opret );
          {
              System.out.println("test");

          }


    }

    public static void main(String args[])
    {
        Reservation window = new Reservation();
        window.inAnApplet = false;

        window.setTitle("GridBagLayout");
        window.pack();
        window.setVisible(true);
        window.setSize(640,480);
    }
}
Avatar billede disky Nybegynder
29. april 2002 - 18:58 #3
nu kan jeg ikke lige prøve det.

men jeg mener du skal adde det til din contentpane.
Avatar billede aslan Nybegynder
29. april 2002 - 19:16 #4
Min Mainframe hvor classerne samles:

import javax.swing.JTabbedPane;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;

import java.awt.*;
import java.awt.event.*;
import java.sql.*;

public class MainFrame extends JPanel
{
    public MainFrame()
    {

        ImageIcon icon = new ImageIcon("brev.gif");

        JTabbedPane tabbedPane = new JTabbedPane();


        JFrame panel1 = new OpretGaest();
        tabbedPane.addTab("Opret Gæst", icon, panel1.getContentPane(), "");


        Component panel2 = makeTextPanel("Blah blah blah");
        tabbedPane.addTab("Three", icon, panel2, "");


        Component panel3 = makeTextPanel("Blah blah blah");
        tabbedPane.addTab("Three", icon, panel3, "");

        Component panel4 = makeTextPanel("Blah blah blah blah");
        tabbedPane.addTab("Four", icon, panel4, "");

        JFrame panel5 = new Reservation();
        tabbedPane.addTab("Reservation", icon, panel5.getContentPane(), "");

        //Add the tabbed pane to this panel.
        setLayout(new GridLayout(1, 1));
        add(tabbedPane);
    }



    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[] args) {
        JFrame frame = new JFrame("Hotel Lazy");
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);}
        });

        frame.getContentPane().add(new MainFrame(),
                                  BorderLayout.CENTER);
        frame.setBounds(150,150,640,480);
        frame.setTitle("Hotel Lazy");
        frame.setVisible(true);
    }
}
Avatar billede carstenknudsen Nybegynder
29. april 2002 - 20:04 #5
getContentPane().add(...);
Avatar billede aslan Nybegynder
29. april 2002 - 20:18 #6
Lidt mere uddybet tak?
Avatar billede disky Nybegynder
29. april 2002 - 20:25 #7
sorry,

jeg er bestemt ikke awt/swing expert.
Avatar billede aslan Nybegynder
29. april 2002 - 21:05 #8
carstenknudsen havde du lyst til at uddybe hvad du lige skrev der?
Avatar billede jword Nybegynder
30. april 2002 - 08:07 #9
Hvor ønsker du dit panel henne? I dit tabbedpane?
Avatar billede carstenknudsen Nybegynder
30. april 2002 - 09:16 #10
Det var en kommentar ikke et svar, jeg
så bare at der i diskussionen stod
contentpane og contentPane.add(søg) og
disse ville ikke virke skrevet på den måde.
Ellers intet.
Avatar billede aslan Nybegynder
30. april 2002 - 10:42 #11
ja jword!
Avatar billede jword Nybegynder
30. april 2002 - 11:38 #12
øhm... Din kode er lidt forvirrende, men hvis jeg forstår det rigtigt, når der trykkes på en knap i reservations-framen (som er placeret i et tabbedpane) skal der åbnes et nyt panel i det samme tabbedpane. Det kræver, at der er en reference til dit tabbedpane i din reservationspanel, hvilket du kan gøre ved at ændre constructoren:

public Reservation(JTabbedPane pane) {
tabbedpane = pane;  //kræver et field: JTabbedPane tabbedpane er defineret.
this();
}

og i actionperformed bruger adder du så dit panel til dit tabbedpane:

public void actionPerformed(ActionEvent e) {
tabbedPane.addTab("nyt felt", icon, new JPanel(), "");
}

iøvrigt ville det være lidt mere overskueligt, hvis du ændrede din reservation class til at extende jpanel istedet for jframe, så ville du slippe for de dér: reservation.getContentpane()...
Avatar billede aslan Nybegynder
30. april 2002 - 17:57 #13
ehm Jword.. hvordan skulle hele min reservations classe så se ud, hvis jeg ønskede at skifte over til en anden classe med navnet opdater.classe på trykket opdatere? Jeg er ikke helt med:(
Avatar billede jword Nybegynder
02. maj 2002 - 08:09 #14
brugen af getContentPane().addSomething .setSomething kommer fra at Reservation extender JFrame. Man kan ikke adde eller sætte layout direkte på en jframe (som man kan med andre containere, f.eks Jpanel). Dét var hvad jeg mente. Reservations-classen kan ligeså godt extende jpanel, da du i din kode bruger den som jpanel. Isåfald vil koden, de steder hvor der står f.eks getContentPane().add(somecomponent) blot hedde add(somecomponent).

Men med mindre du står og skal bruge ovennævnte eksempel umiddelbart, burde du nok prøve at eksperimentere lidt med nogle simple eksempler med brug af komponenter, actionlisteners, osv.
Avatar billede aslan Nybegynder
04. maj 2002 - 09:03 #15
nå men..
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