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