pwiw3_4

advertisement
JTable
import java.util.*;
import java.io.*;
import java.lang.*;
public class Aplikacja
{ Vector dane=new Vector(3,3);
public void nadaj_tytul(String tytul, String autor, String ISBN_)
{ Tytul dana =new Tytul();
dana.nadaj_tytul(tytul_);
dana.nadaj_autor(autor_);
dana.nadaj_ISBN(ISBN_);
}
}
dane.add(dana);
public Vector podaj_dane()
{ Vector pom=(Vector)dane.clone();
return pom;
}
import java.util.*;
import java.io.*;
import java.lang.*;
public class Tytul
{
String tytul=new String();
String autor=new String();
String ISBN=new String();
}
public String podaj_tytul()
{return tytul;}
public String podaj_autor()
{return autor;}
public String podaj_ISBN()
{return ISBN;}
public void nadaj_tytul(String a)
{tytul=a;}
public void nadaj_autor(String b)
{autor=b;}
public void nadaj_ISBN(String c)
{ISBN=c;}
import
import
import
import
import
import
import
import
import
java.util.*;
java.io.*;
java.lang.*;
java.awt.event.*;
javax.swing.*;
javax.swing.table.*;
javax.swing.ListSelectionModel;
javax.swing.event.ListSelectionEvent;
javax.swing.event.ListSelectionListener;
public class Ttytul extends JFrame
implements ListSelectionListener, ActionListener
{
DefaultTableModel model;
//składniki interfesju graficznego użytkownika
JTable tytuly;
JButton tytulOK ;
int stan;
int wiersz;
Aplikacja dane;
// przechowywanie danych
public Ttytul(Aplikacja ap)
{ super("Tytul 1");
dane=ap;
stan=0;
setSize(350,150);
JPanel panel=new JPanel();
JLabel etykieta_tytulow = new JLabel("Tytuly");
panel.add(etykieta_tytulow);
model = new DefaultTableModel(0,3);
Vector v=new Vector(3);
model.addRow(v);
tytuly = new JTable(model);
JScrollPane scrollpane = new JScrollPane(tytuly);
JTextField text=new JTextField();
tytuly.setCellEditor(new DefaultCellEditor(text));
tytuly.setSelectionMode(ListSelectionModel.SINGLE_SELECTION );
ListSelectionModel rowSM = tytuly.getSelectionModel();
rowSM.addListSelectionListener(this);
panel.add(tytuly);
tytulOK=new JButton("Tytul OK");
tytulOK.addActionListener(this);
panel.add( tytulOK);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(panel);
}
public void wyswietl()
{ Vector v=dane.podaj_dane();
Iterator iterator = v.iterator();
model = new DefaultTableModel(0,3);
tytuly.setModel(model);
int i=0;
while(iterator.hasNext())
{ Tytul t=(Tytul)iterator.next();
Vector vv=new Vector(3);
model.addRow(vv);
model.setValueAt(t.podaj_tytul(),i,0);
model.setValueAt(t.podaj_autor(),i,1);
model.setValueAt(t.podaj_ISBN(),i,2);
i++;
}
Vector vv=new Vector(3);
model.addRow(vv);
}
public void valueChanged(ListSelectionEvent e)
{
if (e.getValueIsAdjusting()|| stan!=0) return; //pomijanie niewłaściwych zdarzeń
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if (lsm.isSelectionEmpty())
{
}
//nie wybrano komórki tabeli
else
{wiersz = lsm.getMinSelectionIndex();
//wybrano komórkę tabeli
stan=1;
//i zapamiętano wystąpienie zdarzenia w stan=1
}
}
public void actionPerformed(ActionEvent evt)
{ Object zrodlo=evt.getSource();
if (zrodlo==tytulOK && stan==1)
{ String tytul_=(String)model.getValueAt(wiersz, 0); //pobranie z wybranych
String autor_=(String)model.getValueAt(wiersz, 1); // komórek łańcuchy
String ISBN_=(String)model.getValueAt(wiersz, 2);
dane.nadaj_tytul(tytul_,autor_,ISBN_); //i zapamiętano je jako dane aplikacji
stan=0;
//i zapamiętano wystąpienie zdarzenia w stan=0
wyswietl();
//wywołanie funkcji odświeżającej zawartość tabeli
repaint();
//i pokazanie jej na ekranie
}
}
public static void main(String[] arg)
{ Aplikacja aplikacja=new Aplikacja() ;
Ttytul pr= new Ttytul(aplikacja);
pr.show();
}
}
//utworzenie danych aplikacji
//utworzenie interfejsu i przekazanie
//referencji do danych
Download