Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ztp4;
- import java.awt.event.*;
- import java.util.ArrayList;
- import java.util.Random;
- import javax.swing.*;
- import javax.swing.event.ListSelectionEvent;
- import javax.swing.event.ListSelectionListener;
- // dane przechowywane w bazie
- interface Data {
- public int get(int idx);
- public void set(int idx, int value);
- public int size();
- }
- // prosta implementacja danych - tablica
- class RealData implements Data {
- Random generator = new Random();
- int[] dane;
- int size_kl;
- RealData(int size){
- dane = new int[size];
- size_kl = size;
- for(int i=0;i<size;i++)
- {
- dane[i]=generator.nextInt();
- }
- }
- @Override
- public int get(int idx) {
- return dane[idx];
- }
- @Override
- public void set(int idx, int value) {
- dane[idx] = value;
- }
- @Override
- public int size() {
- return size_kl;
- }
- }
- // baza danych - kolekcja Data
- class Baza extends AbstractListModel{
- private ArrayList<Data> ar = new ArrayList<Data>();
- public void valueChanged(ListSelectionEvent e) {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- }
- public void add(Data tab){
- if(ar.add(tab)){
- fireContentsChanged(this, 0, getSize());
- }
- fireIntervalAdded(tab, 0, getSize() );
- }
- public void remove(int idx){
- ar.remove(idx);
- }
- @Override
- public int getSize() {
- return ar.size();
- }
- @Override
- public Object getElementAt(int index) {
- return ar.toArray()[index];
- }
- }
- public class ztp4 {
- public static void main(String[] args) {
- final Baza dane = new Baza();
- Data dane1 = new RealData(dane.getSize());
- final JFrame frame = new JFrame("Zadanie 4");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JSplitPane splitPane = new JSplitPane();
- final JList list = new JList(dane);
- list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- JScrollPane scrollPane = new JScrollPane(list);
- scrollPane.setBorder(BorderFactory.createTitledBorder(" Tablice: "));
- splitPane.setLeftComponent(scrollPane);
- JTable table = new JTable(/* tutaj adapter*/);
- scrollPane = new JScrollPane(table);
- scrollPane.setBorder(BorderFactory.createTitledBorder(" Zawartość: "));
- splitPane.setRightComponent(scrollPane);
- frame.getContentPane().add(splitPane);
- JMenuBar bar = new JMenuBar();
- JButton add = new JButton("Dodaj tablicę");
- JButton del = new JButton("Usuń tablicę");
- bar.add(add);
- bar.add(del);
- frame.setJMenuBar(bar);
- frame.setSize(600, 450);
- frame.setVisible(true);
- splitPane.setDividerLocation(0.5);
- add.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- String value = JOptionPane.showInputDialog(frame,
- "Podaj rozmiar tablicy",
- "Dodaj",
- JOptionPane.INFORMATION_MESSAGE);
- try{
- int size = Integer.parseInt(value);
- dane.add(new RealData(size));
- } catch(Exception ex) { };
- }
- });
- del.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- int idx = list.getSelectedIndex();
- try{
- dane.remove(idx);
- } catch(Exception ex) { };
- }
- });
- // zmiana wyboru na liście powoduje odświeżenie tabeli
- list.addListSelectionListener(new ListSelectionListener() {
- public void valueChanged(ListSelectionEvent e) {
- int idx = list.getSelectedIndex();
- if (idx >= 0) {
- //
- }
- }
- }
- );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment