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);
}
}