codice:
public class StampaTutti implements ActionListener{
private Lista l=null;
private JButton visualizza[],elimina[],ordnome,orddata;
private JFrame f;
private JCheckBox morto,regalato;
private JLabel n,nato;
private boolean nomorti=false;
private JPanel p;
StampaTutti(Lista l){
this.l=l;
f=new JFrame();
f.setVisible(true);
f.setTitle("Visualizza Tutti");
f.setSize(700, 450);
f.setDefaultCloseOperation(1);
Image ico=Toolkit.getDefaultToolkit().getImage("logo.gif");
f.setIconImage(ico);
elementi();
}
public void elementi(){
p=new JPanel();
f.add(p);
p.setLayout(null);
visualizza=new JButton[l.array.size()];
elimina=new JButton[l.array.size()];
int x=0;
for(int i=0;i<l.array.size();i++){
if(i==0){
x=3;//abbassa la prima righa
}
//gestione filtri
if(nomorti==true){
if(l.array.get(i).getMorto().compareTo("")==0){
visual(i,x);
}
}
else{
visual(i,x);
}
}
//GESTIONE
JLabel filtro=new JLabel("Filtri ");
filtro.setBounds(10, 10, 70, 15);
p.add(filtro);
morto=new JCheckBox();
morto.setText("Morto");
morto.setBounds(70, 10, 70, 15);
morto.setSelected(nomorti);
p.add(morto);
morto.addActionListener(this);
regalato=new JCheckBox();
regalato.setText("Regalato");
regalato.setBounds(150, 10, 70, 15);
p.add(regalato);
regalato.addActionListener(this);
JLabel ordina=new JLabel("Ordina per");
ordina.setBounds(10, 40, 70, 15);
p.add(ordina);
ordnome=new JButton("Nome");
ordnome.setBounds(70, 40, 70, 15);
p.add(ordnome);
ordnome.addActionListener(this);
orddata=new JButton("Età");
orddata.setBounds(140, 40, 70, 15);
p.add(orddata);
orddata.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
int x;
for(x=0;x<l.array.size();x++){
if(e.getSource().equals(visualizza[x])){
Visualizza v=new Visualizza(l,x,this);
}
if(e.getSource().equals(elimina[x])){
int sc=JOptionPane.showConfirmDialog(f,"Sicuro di cancellare questo cane? Verrà definitivamente cancellato!");
if(sc==JOptionPane.YES_OPTION){
l.elimina(l.array.get(x));
aggiorna();
}
}
}
if(e.getSource().equals(ordnome)){
l.ordina();
//ridisegna
aggiorna();
}
if(e.getSource().equals(morto)){
if(morto.isSelected()){
morto.setSelected(true);
nomorti=true;
}
else{
nomorti=false;
morto.setSelected(false);
}
}
}
public void aggiorna(){
f.remove(p);
f.repaint();
elementi();
}
public void visual(int i,int x){
String nome=l.array.get(i).getNome();
n=new JLabel("Nome: "+nome);
n.setBounds(20, 20*(i+1+x), 150, 15);
p.add(n);
int na=l.array.get(i).getAnno();
nato=new JLabel("Anno di nascita "+na);
nato.setBounds(200, 20*(i+1+x), 150, 15);
p.add(nato);
//visualizza
visualizza[i]=new JButton("Visualizza");
visualizza[i].setBounds(400, 20*(i+1+x), 100, 15);
p.add(visualizza[i]);
visualizza[i].addActionListener(this);
//elimina
elimina[i]=new JButton("Elimina");
elimina[i].setBounds(550, 20*(i+1+x), 100, 15);
p.add(elimina[i]);
elimina[i].addActionListener(this);
}
}