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

    [Java]modifica runtime di un JPanel

    Ho fatto questa piccola classe. Io mi aspettavo che cliccando sul tasto "Planner" il JPanel "corpoFinestra" cambiasse, invece non succede nulla. Al massimo sono riuscito a fargli cambiare colore con un setBackgroundColor...
    come mai?

    codice:
    public class NewAgenda extends JFrame
    {
         JPanel corpoFinestra = new JPanel();
    
         public NewAgenda() throws Exception
         {
              corpoFinestra.setBackground(Color.GRAY);
              this.addWindowListener(new EventoEsci());
              this.setTitle("Agenda");
              this.getContentPane().add(disegnaToolBar(), BorderLayout.NORTH);
              this.getContentPane().add(corpoFinestra, BorderLayout.CENTER);
              this.pack();
              this.setSize(800, 600);
              utility.centraFinestra(this);
              this.setVisible(true);
         }
    
         private JToolBar disegnaToolBar() throws Exception
         {
              JToolBar barra = new JToolBar();
              barra.add(new PulsantePlanner());
              barra.add(new JButton("Mensile"));
              barra.add(new JButton("Settimanale"));
              barra.add(new JButton("Giornaliero"));
              return (barra);
         }
    
         //DEFINIZIONE DEGLI EVENTI
         private class EventoEsci extends WindowAdapter implements ActionListener
         {
              private void esci()
              {
                   System.exit(0);
              }
    
              public void actionPerformed(ActionEvent e)
              {
                   esci();
              }
    
              public void windowClosing(WindowEvent e)
              {
                   esci();
              }
         }
    
         private class EventoPlanner implements ActionListener
         {
              public void actionPerformed(ActionEvent e)
              {
                   corpoFinestra.add(new JButton("Planner"));
              }
         }
    
         //DEFINIZIONE DEI PULSANTI
         private class PulsantePlanner extends JButton
         {
              public PulsantePlanner()
              {
                   this.setText("Planner");
                   this.addActionListener(new EventoPlanner());
              }
         }
    }
    Mandrake 10.1; Gnome 2.6
    FireFox&Thunderbird make Internet better

  2. #2
    nessuno ci prova?
    Mandrake 10.1; Gnome 2.6
    FireFox&Thunderbird make Internet better

  3. #3
    Nel metodo actionPerformed, dopo che aggiungi il nuovo pannello, prova a chiamare il metodo validate() sull'oggetto JFrame.

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.