Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [JAVA] Aggiungere componenti via codice

    Salve,

    domandina: io ho la mia JFrame con il mio jPanel e magari un pulsante. Vorrei che al click del pulsante venisse inserito un nuovo componente (che so, un altro panel, un button, un jcombo...qualsiasi) nel jPanel. Qualcuno mi potrebbe dire come si fa? perchè il seguente:

    codice:
    JPanel mainPanel;
    
    ...
    ...
    
    JButton button= new JButton("ciao");
    ...
    mainPanel.add(button);
    
    //mainPanel.validate();
    //mainPanel.repaint();
    con o senza i commenti alla fine non funziona. Neanche questo:

    codice:
    this.getFrame().add(button)
    (sto su NetBeans e questo usa una JFrameView che ha il metodo getFrame) funge


    insomma ma come si fa sta cosa?

    grazie
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  2. #2
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790

    Re: [JAVA] Aggiungere componenti via codice

    Originariamente inviato da Santino83_02
    Salve,

    domandina: io ho la mia JFrame con il mio jPanel e magari un pulsante. Vorrei che al click del pulsante venisse inserito un nuovo componente (che so, un altro panel, un button, un jcombo...qualsiasi) nel jPanel. Qualcuno mi potrebbe dire come si fa? perchè il seguente:

    codice:
    JPanel mainPanel;
    
    ...
    ...
    
    JButton button= new JButton("ciao");
    ...
    mainPanel.add(button);
    
    //mainPanel.validate();
    //mainPanel.repaint();
    con o senza i commenti alla fine non funziona. Neanche questo:

    codice:
    this.getFrame().add(button)
    (sto su NetBeans e questo usa una JFrameView che ha il metodo getFrame) funge


    insomma ma come si fa sta cosa?

    grazie
    codice:
    button1.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
                    JButton button2=new JButton("bottone2");
                    mainPanel.add(button2);
          }
    }
    così deve andare per forza

  3. #3
    eh no non va

    codice:
    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
            // TODO add your handling code here:
            JButton button=new JButton("ciao amico");
            mainPanel.add(button);
            System.out.print(button.getText());
        }
    in console mi stampa correttamente "ciao amico" ma il mainPanel non mi visualizza nulla.



    ma è colpa dell'ide di NetBeans?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da Santino83_02
    eh no non va

    codice:
    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
            // TODO add your handling code here:
            JButton button=new JButton("ciao amico");
            mainPanel.add(button);
            System.out.print(button.getText());
        }
    in console mi stampa correttamente "ciao amico" ma il mainPanel non mi visualizza nulla.



    ma è colpa dell'ide di NetBeans?
    no fai mainPanel.revalidate(); così funziona

  5. #5
    a me non funziona, validate/revalidate/repaint/combinati assieme, non va, neanche se aggiungo un altro panel e provo a metterlo li il pulsante.

    ecchecavolo eppure dovrebbe essere una cosa semplice
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da Santino83_02
    a me non funziona, validate/revalidate/repaint/combinati assieme, non va, neanche se aggiungo un altro panel e provo a metterlo li il pulsante.

    ecchecavolo eppure dovrebbe essere una cosa semplice
    ma il revalidate lo fai subito quando aggiungi il nuovo componente...cmq posta il codice

  7. #7
    Allora, di seguito ci sono le inizializzazioni dei componenti che fa l'ide:

    codice:
    
            jPanel1.setBackground(resourceMap.getColor("jPanel1.background")); // NOI18N
            jPanel1.setName("jPanel1"); // NOI18N
    
            org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
            jPanel1.setLayout(jPanel1Layout);
            jPanel1Layout.setHorizontalGroup(
                jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(0, 166, Short.MAX_VALUE)
            );
            jPanel1Layout.setVerticalGroup(
                jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(0, 102, Short.MAX_VALUE)
            );
    
            org.jdesktop.layout.GroupLayout mainPanelLayout = new org.jdesktop.layout.GroupLayout(mainPanel);
            mainPanel.setLayout(mainPanelLayout);
            mainPanelLayout.setHorizontalGroup(ETC ETC
    diciamo che io voglio far apparire il miopulsante in jPanel1 (o anche mainPanel era uguale). Al click viene eseguita qeusta:

    codice:
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            // TODO add your handling code here:
            javax.swing.JButton button= new javax.swing.JButton("buttone");
            //button.setBackground(java.awt.Color.BLUE);
            //button.setVisible(true);
            this.jPanel1.add(button);
            //this.mainPanel.validate();
            this.jPanel1.revalidate();
            //this.mainPjPanel1anel.repaint();
            
            //jButton1.setVisible(false);
        }
    dove le parti commentate erano una serie di prove

    risultato: nulla
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.