MarVin666

szmata

Oct 19th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.14 KB | None | 0 0
  1. package ztp4;
  2.  
  3. import java.awt.event.*;
  4. import java.util.ArrayList;
  5. import java.util.Random;
  6. import javax.swing.*;
  7. import javax.swing.event.ListSelectionEvent;
  8. import javax.swing.event.ListSelectionListener;
  9.  
  10.  
  11. // dane przechowywane w bazie
  12. interface Data {
  13.     public int get(int idx);
  14.     public void set(int idx, int value);
  15.     public int size();
  16. }
  17.  
  18.  
  19.  
  20. // prosta implementacja danych - tablica
  21. class RealData implements Data {
  22.    
  23.     Random generator = new Random();
  24.     int[] dane;
  25.     int size_kl;
  26.    
  27.     RealData(int size){
  28.         dane = new int[size];
  29.         size_kl = size;
  30.             for(int i=0;i<size;i++)
  31.             {
  32.                 dane[i]=generator.nextInt();
  33.             }
  34.     }
  35.  
  36.     @Override
  37.     public int get(int idx) {
  38.         return dane[idx];
  39.     }
  40.  
  41.     @Override
  42.     public void set(int idx, int value) {
  43.         dane[idx] = value;
  44.     }
  45.  
  46.     @Override
  47.     public int size() {
  48.         return size_kl;
  49.     }
  50.    
  51. }
  52.  
  53. // baza danych - kolekcja Data
  54. class Baza extends AbstractListModel{
  55.     private ArrayList<Data> ar = new ArrayList<Data>();
  56.  
  57.    public void valueChanged(ListSelectionEvent e) {
  58.         throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  59.    }
  60.    
  61.     public void add(Data tab){
  62.       if(ar.add(tab)){
  63.          fireContentsChanged(this, 0, getSize());
  64.       }
  65.       fireIntervalAdded(tab,  0,  getSize()   );
  66.     }
  67.  
  68.     public void remove(int idx){
  69.         ar.remove(idx);
  70.     }
  71.  
  72.     @Override
  73.     public int getSize() {
  74.         return ar.size();
  75.     }
  76.  
  77.     @Override
  78.     public Object getElementAt(int index) {
  79.         return ar.toArray()[index];
  80.     }
  81. }
  82.  
  83.  
  84. public class ztp4 {
  85.  
  86.     public static void main(String[] args) {
  87.  
  88.         final Baza dane = new Baza();
  89.  
  90.         Data dane1 = new RealData(dane.getSize());
  91.        
  92.         final JFrame frame = new JFrame("Zadanie 4");
  93.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  94.         JSplitPane splitPane = new JSplitPane();
  95.  
  96.         final JList list = new JList(dane);
  97.         list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  98.         JScrollPane scrollPane = new JScrollPane(list);
  99.         scrollPane.setBorder(BorderFactory.createTitledBorder(" Tablice: "));
  100.         splitPane.setLeftComponent(scrollPane);
  101.  
  102.         JTable table = new JTable(/* tutaj adapter*/);
  103.         scrollPane = new JScrollPane(table);
  104.         scrollPane.setBorder(BorderFactory.createTitledBorder(" Zawartość: "));
  105.         splitPane.setRightComponent(scrollPane);
  106.  
  107.         frame.getContentPane().add(splitPane);
  108.  
  109.         JMenuBar bar = new JMenuBar();
  110.         JButton add = new JButton("Dodaj tablicę");
  111.         JButton del = new JButton("Usuń tablicę");
  112.         bar.add(add);
  113.         bar.add(del);
  114.  
  115.         frame.setJMenuBar(bar);
  116.  
  117.         frame.setSize(600, 450);
  118.         frame.setVisible(true);
  119.  
  120.         splitPane.setDividerLocation(0.5);
  121.  
  122.         add.addActionListener(new ActionListener() {
  123.  
  124.             public void actionPerformed(ActionEvent e) {
  125.                 String value = JOptionPane.showInputDialog(frame,
  126.                         "Podaj rozmiar tablicy",
  127.                         "Dodaj",
  128.                         JOptionPane.INFORMATION_MESSAGE);
  129.                 try{
  130.                     int size = Integer.parseInt(value);
  131.                     dane.add(new RealData(size));
  132.                 } catch(Exception ex) { };
  133.             }
  134.         });
  135.         del.addActionListener(new ActionListener() {
  136.  
  137.             public void actionPerformed(ActionEvent e) {
  138.                 int idx = list.getSelectedIndex();
  139.                 try{
  140.                     dane.remove(idx);
  141.                 } catch(Exception ex) { };
  142.             }
  143.         });
  144.  
  145.         // zmiana wyboru na liście powoduje odświeżenie tabeli
  146.         list.addListSelectionListener(new ListSelectionListener() {
  147.             public void valueChanged(ListSelectionEvent e) {
  148.                 int idx = list.getSelectedIndex();
  149.                 if (idx >= 0) {
  150.                     //
  151.                 }
  152.             }
  153.         }
  154.         );
  155.     }
  156. }
Advertisement
Add Comment
Please, Sign In to add comment