codice:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class MainFrame2 extends JFrame implements ActionListener{
private JButton button=null;
private JLabel label=null;
public static void main(String[] args){
new MainFrame2();
}
public MainFrame2(){
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
if(button==null){
button=new JButton("Modifica");
button.addActionListener(this);
jp1.add(button);
}
if(label==null){
label=new JLabel("Pippo");
jp2.add(label);
}
this.setLayout(new GridLayout(1,2));
this.add(jp1);
this.add(jp2);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public void actionPerformed(ActionEvent ae){
if(label.getText().compareTo("Pippo")==0)
label.setText("Pluto");
else
label.setText("Pippo");
label.validate();
}
}
La cosa importante è che il metodo actionPerformed() deve avere a disposizione un puntatore alla label perché è lì dentro che bisogna modificare il testo dentro la JLabel e ovviamente dopo il setText() bisogna richiamare il metodo validate()
(il metodo validate() non serve in questo caso ma ci sono componenti per cui serve dopo la modifica come per esempio i JPanel)
P.S. L'ho fatto adesso in 5 minuti alle 2:30 di mattina e oggi alle 14:00 ho pure un esame