Salve,
sto imparando l'interfaccia grafica e la gestione degli eventi.Prendendo spunto da un esempio sul libro ho provato a programmare un frame con tre bottoni ognuno dei quali all'atto del click dovrebbe visualizzare una stringa a secondo del bottone cliccato ma ciò non accade o meglio accade nel modo sbagliato.
Compilato ed eseguito le stringhe sono visibile solo se ridimensiono il frame dopo aver cliccato sul bottone.Dove sbaglio?Saluti.codice:import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ButtonTest{ public static void main(String[] args){ ButtonFrame frame = new ButtonFrame(); //frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } class ButtonFrame extends JFrame{ public ButtonFrame(){ setTitle("Button Test"); setSize(DEF_W,DEF_H); setVisible(true); //aggiungi panello al frame ButtonPanel panel = new ButtonPanel(); //Container contentPane = getContentPane(); //contentPane. add(panel); WindowListener term = new Terminator(); this.addWindowListener(term); } private class Terminator extends WindowAdapter{ public void windowClosing(WindowEvent event){ System.out.println("Chiudo programma"); System.exit(0); } } public static final int DEF_W = 300; public static final int DEF_H = 200; } /** Panello con tre pulsanti **/ class ButtonPanel extends JPanel{ public ButtonPanel(){ //crea pulsanti makeButton("Yellow","YELLOW BUTTON"); makeButton("Red","RED BUTTON"); makeButton("Blue","BLUE BUTTON"); } public void makeButton(String name,final String string){ JButton button = new JButton(name); add(button); button.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ JLabel label=new JLabel(string); label.setLocation(75,100); add(label); System.out.println("sono qui"); } }); } }

Rispondi quotando

