Avatar billede ircnoob Nybegynder
11. april 2006 - 09:54 Der er 6 kommentarer

Design af gui

<a href="http://img113.imageshack.us/my.php?image=gui3ji.png" target="_blank"><img src="http://img113.imageshack.us/img113/1694/gui3ji.th.png" border="0" alt="Free Image Hosting at www.ImageShack.us" /></a>

Hej,
nyt med design af gui for mig, så vil høre om nogen kan hjælpe med et par spørgsmål .. Har vedlagt et screenshot i link ovenover..

Kan man ikke med java lave så når man klikker på de buttons ude til venstre, så viser den nyt contents i "main-vinduet" .. ? Lige nu har jeg bare én gui-klasse der viser det på linket, men kan jo ikke passe at jeg skal copy paste det så når jeg klikker på rediger medlem, at der så skal ligge en kopi af gui, blot hvor jeg har ændret det ovre til højre til at passe nu.. hvordan burde/bør jeg opbygge gui så man kan køre med noget main halløj som man jo nok kan .. ?
Avatar billede _carsten Nybegynder
11. april 2006 - 16:48 #1
Hmmm - forstår nok ikke spørgsmålet, men er det i princippet ikke de samme felter som vises enten man opretter eller redigerer et medlem ?

Men skal skal billedet skifte til højre for knapperne, kan du jo bruge CardLayout der.
Avatar billede ircnoob Nybegynder
11. april 2006 - 17:01 #2
altså spørgsmålet går på, du har menu'en osv og resten af program-fladen, som vil være ens uanset hvad du skal bruge af funktioner .. men hvis du så klikker på opret medlem skal den jo være forskellig fra udseng girokort.. men kun lige i "main" vinduet.. resten er jo ens.. men man skal have en gui klasse til dem alle... der er ikke noget a la frames som i html så man kan nøjes med at opdatere main vinduet .. ?
Avatar billede _carsten Nybegynder
11. april 2006 - 18:17 #3
Jo - er det sådan noget du tænker på ??

import java.awt.CardLayout;
import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JPanel;


public class ExpCardLayout extends javax.swing.JFrame {

    public ExpCardLayout() {
        initComponents();
        cl = (CardLayout)center.getLayout();
        setSize(400,400);
    }

    private void initComponents() {
        java.awt.GridBagConstraints gridBagConstraints;

        west = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        center = new javax.swing.JPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        west.setLayout(new java.awt.GridBagLayout());

        jButton1.setText("Vis gr\u00f8nt panel");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                switchPanel(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        west.add(jButton1, gridBagConstraints);

        jButton2.setText("Vis bl\u00e5t panel");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                switchPanel(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        west.add(jButton2, gridBagConstraints);

        jButton3.setText("Vis gult panel");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                switchPanel(evt);
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        west.add(jButton3, gridBagConstraints);

        getContentPane().add(west, java.awt.BorderLayout.WEST);

        center.setLayout(new java.awt.CardLayout());

        center.add(new MyPanel(Color.green), "kort1");

        center.add(new MyPanel(Color.blue), "kort2");

        center.add(new MyPanel(Color.yellow), "kort3");


        getContentPane().add(center, java.awt.BorderLayout.CENTER);

        pack();
    }

    private void switchPanel(java.awt.event.ActionEvent evt) {
        JButton b = (JButton)evt.getSource();

        if(b == jButton1)
            cl.show(center, "kort1");
        else if(b == jButton2)
            cl.show(center, "kort2");
        if(b == jButton3)
            cl.show(center, "kort3");
    }


    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new ExpCardLayout().setVisible(true);
            }
        });
    }

    private javax.swing.JPanel center;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JPanel west;

    private CardLayout cl;
}








class MyPanel extends JPanel{
    public MyPanel(Color c){
        setBackground(c);
    }
}
Avatar billede ircnoob Nybegynder
11. april 2006 - 18:51 #4
yar .. men gør man ikke sådan i java .. eller skal man sidde og kopiere alt .. er da lidt tåbeligt hvis man skal ændre noget i en menu .. men hvordan kan jeg lave det med gui designeren ??
Avatar billede _carsten Nybegynder
11. april 2006 - 19:57 #5
Nej, ingen ide i at kopiere

Du laver nogle classer, eks

class SendGirokort extends JPanel{
    public MyPanel(Color c){
        setBackground(c);
        // Gør et eller andet med de girokort
    }
}

class OpretMedlem extends JPanel{
    public MyPanel(Color c){
        setBackground(c);
        // Gør et eller andet ved medlem
    }
}

Og bruger dem istedet for mit gule, grønne og blå panel.

gui designeren ............
Tja - enten koder du hele fra bunden af, eller sætter dig ind i hvordan den gui designer fungerer som du nu anvender, jeg ved ikke hvad du bruger.
Avatar billede ircnoob Nybegynder
12. april 2006 - 08:22 #6
dælen var sikker på jeg skrev det.. :) .. Er netbeans jeg benytter, og har checket alle guides og video  på netbeans men der ahr de ikke andet end et enkelt skærmvindue så har ikke lige kunnet finde ud af hvordan man skal gøre det i netbeans gui designer..
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