Avatar billede jugsaw Nybegynder
25. april 2004 - 12:39 Der er 1 kommentar og
1 løsning

Opsætning mellem 2 GUI klasser

Jeg har 2 GUIklasser K1 & K2

K1 er bygget på en JFrame
K2 er bygget på et JPanel

Jeg har en Knap(visJpanel) og et Jpanel(indHer) i K1
I K2 er der kun en Jlabel(virker) sat på jPanel

Jeg vil gerne frem til at ved tryk på knappen i K1 vises K2 i det jPanel(indHer) som sidder i K1

Håber at det giver mening....

Kode på de 2 klasser:

<-------------------------->

public class K1 extends javax.swing.JFrame {
   
    /** Creates new form K1 */
    public K1() {
        initComponents();
    }
   
    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    */
    private void initComponents() {
        visJpanel = new javax.swing.JButton();
        indHer = new javax.swing.JPanel();

        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        visJpanel.setText("Vis");
        visJpanel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                visJpanelActionPerformed(evt);
            }
        });

        getContentPane().add(visJpanel, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 10, -1, -1));

        indHer.setBorder(new javax.swing.border.EtchedBorder());
        getContentPane().add(indHer, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 40, 400, 250));

        pack();
    }

    private void visJpanelActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
    }
   
    /** Exit the Application */
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }
   
    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        new K1().show();
    }
   
    // Variables declaration - do not modify
    private javax.swing.JPanel indHer;
    private javax.swing.JButton visJpanel;
    // End of variables declaration
   
}

<------------------------------>


public class K2 extends javax.swing.JPanel {
   
    /** Creates new form K2 */
    public K2() {
        initComponents();
    }
   
    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    */
    private void initComponents() {
        virker = new javax.swing.JLabel();

        setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        setBorder(new javax.swing.border.EtchedBorder());
        virker.setText("Det virker");
        add(virker, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 60, 60, -1));

    }
   
   
    // Variables declaration - do not modify
    private javax.swing.JLabel virker;
    // End of variables declaration
   
}

<------------------------------>

Er der en der kan forklare mig det grundlægende i at få dette til at virke, og meget gerne den kode der skal til for at det kan lade sig gøre. Det må gerne være lidt pædagogisk, da jeg skal bruge det som et generalt eks. til min resterende kode.
Avatar billede _carsten Nybegynder
26. april 2004 - 09:01 #1
Det kræver ikke vildt meget, du har sådan set selv vist det meste

Først skal du have en reference til typen
    private K2 k_2;

så skal du have det initieret
    private void initComponents() {
        visJpanel = new javax.swing.JButton();
        indHer = new javax.swing.JPanel();
        k_2 = new K2();


Herefter vist i panel
    private void visJpanelActionPerformed(java.awt.event.ActionEvent evt) {
        indHer.add(k_2);
        indHer.validate();
    }

    Det er vigtigt at kalde validate() på den komponent hvor der tilføjes/fjernes
    komponenter, eller hvis der sker ændriger i layoutet.
    Det får komponenten til at rulle det hele ud igen.
Avatar billede jugsaw Nybegynder
26. april 2004 - 15:44 #2
Takker rigtigt mange gange for hjælpen ,O)
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