Codice con più bottoni
Usiamo un solo oggetto ascoltatore che implementa le 3 interfacce ActionListener, MouseListener e KeyListener.
Nell'ascoltatore creiamo un riferimento alla gui e lo inizializziamo.
La finestra stessa ? una sottoclasse di JFrame con riferiementi ai 3 JPanel e ai 3 JButton che contiene.
Vengono usati ii metodi setActionCommand sui JButton e getActionCommand sull'ActionEvent per distinguere il bottone che ? stato premuto dall'utente.
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
class PFrame extends JFrame{JPanel p1, p2, p3; JButton b1, b2, b3; }
public class PannelliBottoni {
public static void main(String[] args) {
PFrame f = new PFrame();
f.setSize(158, 334);
PAscoltatore pasc = new PAscoltatore(f);
// prendere il contentPane
Container c = f.getContentPane();
// creare i 3 pannelli
f.p1 = new JPanel();f.p2 = new JPanel();f.p3 = new JPanel();
// settare il layout del contentPane
c.setLayout(new GridLayout(3,1));
// settare il layout dell'ultimo pannello
f.p3.setLayout(new GridLayout(1,3));
// creare i 3 bottoni
f.b1 = new JButton("<<");f.b2 = new JButton("[]");f.b3 = new JButton(">>");
// settare i comandi per i 3 bottoni
f.b1.setActionCommand("rw");f.b2.setActionCommand("s");f.b3.setActionCommand("ff");
// aggiungere gli ascoltatori ai 3 bottoni
f.b1.addActionListener(pasc);f.b2.addActionListener(pasc);f.b3.addActionListener(pasc);
// aggiungere i 3 bottoni al pannello
f.p3.add(f.b1);f.p3.add(f.b2);f.p3.add(f.b3);
// aggiungere i pannelli alla frame
c.add(f.p1);c.add(f.p2);c.add(f.p3);
// rendere visibile la frame
f.setVisible(true);
// setActionCommand per i 3 bottoni
}
}
class PAscoltatore implements ActionListener,KeyListener, MouseListener{
// attributo
private PFrame f;
// costruttore
public PAscoltatore (PFrame f){this.f = f;}
public void actionPerformed(ActionEvent arg0) {
if(arg0.getActionCommand().equals("rw"))f.p1.setBackground(Color.blue);
if(arg0.getActionCommand().equals("s"))f.p1.setBackground(Color.white);
if(arg0.getActionCommand().equals("ff"))f.p1.setBackground(Color.red);
}
@Override
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}















