Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Shea
    Registrato dal
    Jul 2000
    Messaggi
    157

    [JAVA] Ereditarietà tra JFrame e JPanel

    Sono niubbo di Java e vorrei sapere se è possibile creare una finestra di base (JFrame) alla quale collegare in base a delle richieste dei contenuti (JPanel) o se di volta in volta devo creare dei JFrame compresi di JPanel.
    Come editor sto usando Netabeans.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    non ho capito tanto bene il problema, comunque se tu crei un jframe puoi inserire al suo interno tutti i jpanel che vuoi e poi in base alle scelte effettuate puoi mostrarli o no con il metodo setVisible() applicato ad ognuno di essi. Ovviamente puoi mostrarne solo uno alla volta

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da perzem
    Ovviamente puoi mostrarne solo uno alla volta
    Che vuol dire?
    In un JFrame (o JPanel stesso) io visualizzo tutti i JPanel (o, in generale, Component) che voglio...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it L'avatar di Shea
    Registrato dal
    Jul 2000
    Messaggi
    157
    Si scusatemi, mi sono espresso male.
    In una classe, chiamata Finestrone, ho messo un JFrame e un JPanel vuoto.
    Poi ho un altra classe chiamata Pippo che ha campi inpute e pulsanti.
    Ora vorrei sapere se è possibile collegare Pippo a Finestrone e come (NB. una alla volta)

    Credo che devo utilizzare class extends giusto?

    Grazie per le risposte.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    quindi tu vuoi che nel jpanel di finestrone si visualizzino i bottoni di pippo...
    Si devi usare extend però non è una soluzione tanto ottimale


    Che vuol dire?
    In un JFrame (o JPanel stesso) io visualizzo tutti i JPanel (o, in generale, Component) che voglio...
    Mi sono spiegato male ovvio che posso visualizzare tutti i jpanel che voglio contemporaneamente, ho solo supposto che per ogni scelta effettuata corrispondesse uno specifico jpanel e quindi gli altri non sarebbero serviti

  6. #6
    Utente di HTML.it L'avatar di Shea
    Registrato dal
    Jul 2000
    Messaggi
    157
    Originariamente inviato da perzem
    quindi tu vuoi che nel jpanel di finestrone si visualizzino i bottoni di pippo...
    Si devi usare extend però non è una soluzione tanto ottimale
    E quale sarebbe la soluzione migliore? Scusami, ma sto imparando con Java.
    Tieni conto che oltre a Pippo avrò altre classi che dovranno essere contenute in Finestrone. Quindi credo che dovrò usare un select case per distiguerle e poi farle apparire di volta in volta in Finestrone.

    Grazie.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    che criterio usi per determinare da quale classe devi prendere i bottoni???

  8. #8
    Utente di HTML.it L'avatar di Shea
    Registrato dal
    Jul 2000
    Messaggi
    157
    Comincio ad avere qualche problema anche con la gestione dei pulsanti, faccio prima a postare tutto il codice:

    Questa è la classe Intro che contiene tre pulsanti che fanno da link
    codice:
    package postit;
    
    /**
     *
     * @author  alegian
     */
    public class Intro extends javax.swing.JPanel {
        
        /** Creates new form Intro */
        public Intro() {
            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() {
            bInserisci = new javax.swing.JButton();
            bLeggi = new javax.swing.JButton();
            bModifica = new javax.swing.JButton();
    
            setLayout(new java.awt.BorderLayout());
    
            setBackground(new java.awt.Color(255, 255, 0));
            setMinimumSize(new java.awt.Dimension(200, 200));
            setPreferredSize(new java.awt.Dimension(200, 200));
            bInserisci.setText("Inserisci");
            bInserisci.setMaximumSize(getMaximumSize());
            bInserisci.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    bInserisciActionPerformed(evt);
                }
            });
            bInserisci.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    bInserisciMouseClicked(evt);
                }
            });
    
            add(bInserisci, java.awt.BorderLayout.CENTER);
    
            bLeggi.setText("Leggi");
            bLeggi.setMaximumSize(getMaximumSize());
            bLeggi.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    bLeggiActionPerformed(evt);
                }
            });
    
            add(bLeggi, java.awt.BorderLayout.SOUTH);
    
            bModifica.setText("Modifica");
            bModifica.setMaximumSize(getMaximumSize());
            add(bModifica, java.awt.BorderLayout.NORTH);
    
        }
    
        private void bInserisciMouseClicked(java.awt.event.MouseEvent evt) {
            //
        }
    
        private void bLeggiActionPerformed(java.awt.event.ActionEvent evt) {
            // TODO add your handling code here:
        }
    
        private void bInserisciActionPerformed(java.awt.event.ActionEvent evt) {
            // TODO add your handling code here:
        }
        
        
        // Variables declaration - do not modify
        protected javax.swing.JButton bInserisci;
        protected javax.swing.JButton bLeggi;
        protected javax.swing.JButton bModifica;
        // End of variables declaration
        
    }
    Questa è la classe Finestra
    codice:
    package postit;
    public class Finestra extends javax.swing.JFrame {
        
        /** Creates new form Finestra */
        public Finestra() {
            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() {
            jPanel1 = new javax.swing.JPanel();
    
            getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
    
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            setName("frame1");
            jPanel1.setBackground(new java.awt.Color(255, 255, 0));
            getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 200, 200));
    
            pack();
        }
        
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Finestra().setVisible(true);
                }
            });
        }
        
        // Variables declaration - do not modify
        private javax.swing.JPanel jPanel1;
        // End of variables declaration
        
    }

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    non ho ancora capito bene cosa vuoi fare usando classi diverse...
    per me puoi fare tutto in una classe costruendo divresi jpanel e mettendo in ognuno quello che vuoi visualizzare di volta in volta
    usando jbuilder mi dice che non ho una libreria di netBeans e mi pare ovvio...
    hai fatto copia incolla da qualche parte???
    è un po' confusionario come codice per assegnare degli eventi per un bottone....

    questa è la struttura per il semplice bottone esci

    codice:
     
    jMenuFileExit.addActionListener(new Frame1_jMenuFileExit_ActionAdapter(this)); //questo è generato automaticamente quando decido di associare ad un bottone un evento nel design
    
    
     public void jMenuFileExit_actionPerformed(ActionEvent e) {//qui ci metti quello che il tuo bottone deve fare
        System.exit(0);
      }
    
    
    class Frame1_jMenuFileExit_ActionAdapter implements ActionListener {//questo è generato automaticamente quando decido di associare ad un bottone un evento nel design
      Frame1 adaptee;
    
      Frame1_jMenuFileExit_ActionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
      }
      public void actionPerformed(ActionEvent e) {
        adaptee.jMenuFileExit_actionPerformed(e);
      }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.