Kod mojego programu:
- Kod: Zaznacz wszystko
- package DaneOsob;
 import java.awt.*;
 import java.lang.*;
 import java.util.*;
 import javax.swing.*;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
 import java.awt.event.*;
 import javax.swing.table.*;
 class Panel extends JPanel implements ListSelectionListener
 { JTable tabela;
 DefaultTableModel model;
 ArrayList <Dane1> dane;
 int wiersz;
 static ArrayList <Dane1> arraylist= new ArrayList<Dane1>();
 public Panel(ArrayList <Dane1> v)
 {super();
 dane=v;
 final String[] columnNames = {"Nazwisko","Uwagi","Srednia"};
 model=new DefaultTableModel(columnNames,0);
 tabela= new JTable(model);
 model.addRow(new Vector<String>(3));
 tabela.setPreferredScrollableViewportSize(new Dimension(250,150));
 tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION );
 ListSelectionModel selekcja = tabela.getSelectionModel();
 selekcja.addListSelectionListener(this);
 JScrollPane suwak = new JScrollPane(tabela);
 add(suwak);
 }
 public void valueChanged(ListSelectionEvent e)
 {
 if (e.getValueIsAdjusting()) return;
 ListSelectionModel lsm = (ListSelectionModel)e.getSource();
 if (!lsm.isSelectionEmpty())
 {wiersz = lsm.getMinSelectionIndex();
 System.out.println("Wiersz " + wiersz+ " jest wybrany.");
 }
 }
 public void wyswietl()
 {
 Iterator iterator = dane.iterator();
 model.setRowCount(0);
 int i=0;
 while(iterator.hasNext())
 { Dane1 t=(Dane1)iterator.next();
 Vector <String>vv=new Vector<String>(3);
 model.addRow(vv);
 model.setValueAt(t.Podaj_nazwisko(),i,0);
 model.setValueAt(t.Podaj_uwagi(),i,1);
 model.setValueAt(""+t.Podaj_srednia(),i,2);
 i++;
 }
 Vector <String>vv=new Vector<String>(3);
 model.addRow(vv);
 }
 public void obslugaactionPerformed()
 {if(tabela.isRowSelected(wiersz))
 {String nazwisko=(String)model.getValueAt(wiersz, 0);
 String uwagi=(String)model.getValueAt(wiersz, 1);
 String srednia=(String)model.getValueAt(wiersz, 2);
 if(nazwisko!=null&&uwagi!=null&&srednia!=null&&
 !nazwisko.equals("")&& !uwagi.equals("")
 &&!srednia.equals(""))
 {try
 {Float.parseFloat(srednia);
 Dane1 d=Dane1.Wstaw(nazwisko,uwagi, srednia);
 dane.add(d);
 Collections.sort(dane);
 wyswietl();
 }catch(NumberFormatException e)
 {JOptionPane.showMessageDialog(this,
 "Wprowadz poprawną średnią");}
 }
 }
 }
 public void szukaj(){
 String s = JOptionPane.showInputDialog(null,"podaj nazwisko");
 
 
 }
 }
 class Okno extends JFrame implements ActionListener
 {
 //składniki interfesju graficznego użytkownika
 Panel panel;
 JButton osobaOK ;
 JButton repaintOK ;
 JButton Szukaj ;
 JTextField szukaj;
 public Okno(ArrayList <Dane1>dane)
 {super("Dane osób");
 setSize(350,300);
 osobaOK=new JButton("Osoba OK");
 osobaOK.addActionListener(this);
 repaintOK=new JButton("Repaint OK");
 repaintOK.addActionListener(this);
 Szukaj=new JButton("Szukaj");
 Szukaj.addActionListener(this);
 szukaj=new JTextField("Wpisz nazwisko");
 szukaj.addActionListener(this);
 setDefaultLookAndFeelDecorated(true);
 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 panel = new Panel(dane);
 panel.setOpaque(true);
 panel.add(osobaOK);
 panel.add(repaintOK);
 panel.add(Szukaj);
 panel.add(szukaj);
 setContentPane(panel);
 setVisible(true);
 }
 public void actionPerformed(ActionEvent evt)
 { Object zrodlo=evt.getSource();
 if (zrodlo==osobaOK)
 panel.obslugaactionPerformed();
 else
 if (zrodlo==Szukaj)
 panel.szukaj();
 else
 if (zrodlo==repaintOK)
 panel.wyswietl();
 //wywołanie funkcji odświeżającej zawartość tabeli
 repaint(); //i pokazanie jej na ekranie
 }
 }
 public class DaneOsob
 { static ArrayList<Dane1> dane=new ArrayList<Dane1>(5);
 
 
 static public void main(String arg[])
 { DaneOsob baza = new DaneOsob();
 Okno okno = new Okno(baza.dane);
 ArrayList <Dane1> arraylist= new ArrayList<Dane1>();
 Collections.sort(arraylist);
 
 }
 }
 class Dane1 implements Comparable <Dane1>
 { String nazwisko;
 float srednia;
 String uwagi;
 public void Nadaj_nazwisko(String lan)
 { nazwisko=lan;}
 public String Podaj_nazwisko()
 { return nazwisko;}
 public void Nadaj_uwagi(String lan)
 { uwagi=lan;}
 public String Podaj_uwagi()
 { return uwagi;}
 public void Nadaj_srednia(float srednia_)
 { srednia=srednia_;}
 public float Podaj_srednia()
 {return srednia;}
 public static Dane1 Wstaw(String nazwisko_, String uwagi_, String srednia_)
 { Dane1 d=new Dane1();
 d.Nadaj_nazwisko(nazwisko_);
 d.Nadaj_srednia(Float.parseFloat(srednia_));
 d.Nadaj_uwagi(uwagi_);
 return d;
 }
 public String toString()
 {String napis="";
 napis+=" Nazwisko: "+nazwisko;
 napis+=" Srednia: "+srednia;
 napis+=" Uwagi: "+uwagi+"\n";
 return napis;
 }
 public boolean equals(Object o)
 { Dane1 d=(Dane1)o;
 return nazwisko.equals(d.nazwisko)
 && srednia==d.srednia
 && uwagi.equals(d.uwagi);
 }
 public int hashCode()
 {return nazwisko.hashCode()+(int)srednia+uwagi.hashCode();
 }
 public int compareTo(Dane1 o) /
 { return nazwisko.compareTo(o.nazwisko);
 }
 }


 
	

