Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*;
- import java.awt.event.*;
- import java.util.*;
- import javax.swing.*;
- import javax.swing.table.DefaultTableModel;
- /*======= TU PROSZE SIE PODPISAC ==============================
- * Imie:
- * Nazwisko:
- *Nr indeksu:
- * Grupa:
- *==============================================================
- */
- class Banknot {
- String waluta;
- double wartosc;
- public Banknot(String waluta, int wartosc) {
- this.waluta = waluta;
- this.wartosc = wartosc;
- }
- @Override
- public String toString() {
- return waluta + " " + waluta;
- }
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((waluta == null) ? 0 : waluta.hashCode());
- long temp;
- temp = Double.doubleToLongBits(wartosc);
- result = prime * result + (int) (temp ^ (temp >>> 32));
- return result;
- }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Banknot other = (Banknot) obj;
- if (waluta == null) {
- if (other.waluta != null)
- return false;
- } else if (!waluta.equals(other.waluta))
- return false;
- if (Double.doubleToLongBits(wartosc) != Double.doubleToLongBits(other.wartosc))
- return false;
- return true;
- }
- } // koniec klasy Banknot
- class Panel extends JPanel implements MouseListener, MouseMotionListener, Runnable {
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- boolean isPressed = false;
- boolean isOnScreen = false;
- int mouseX, mouseY, x=0;
- @Override
- protected void paintComponent(Graphics g) {
- super.paintComponent(g);
- g.setColor(Color.BLACK);
- if(isPressed && isOnScreen) {
- g.fillOval(mouseX -25, mouseY-25, 50, 50);
- } else if(!isPressed && isOnScreen){
- g.drawOval(mouseX-25, mouseY-25, 50, 50);
- }
- g.setColor(Color.YELLOW);
- g.fillOval(x, 0, 50, 50);
- }
- @Override
- public void mouseDragged(MouseEvent e) {
- mouseX = e.getX();
- mouseY = e.getY();
- repaint();
- }
- @Override
- public void mouseMoved(MouseEvent e) {
- mouseX = e.getX();
- mouseY = e.getY();
- repaint();
- }
- @Override
- public void mouseClicked(MouseEvent e) {}
- @Override
- public void mouseEntered(MouseEvent e) {
- isOnScreen = true;
- mouseX = e.getX();
- mouseY = e.getY();
- repaint();
- }
- @Override
- public void mouseExited(MouseEvent e) {
- isOnScreen = false;
- repaint();
- }
- @Override
- public void mousePressed(MouseEvent e) {
- isPressed = true;
- mouseX = e.getX();
- mouseY = e.getY();
- repaint();
- }
- @Override
- public void mouseReleased(MouseEvent e) {
- isPressed = false;
- mouseX = e.getX();
- mouseY = e.getY();
- repaint();
- }
- @Override
- public void run() {
- while(true) {
- try {
- Thread.sleep(10);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- x++;
- if(x>600) {
- x=0;
- }
- repaint();
- }
- }
- } // koniec klasy Panel
- public class Okno extends JFrame implements ActionListener, Runnable{
- // Tu prosz� dopisa� brakuj�ce metody oraz uzupe�ni�
- // zadeklarowane poni�ej metody implementuj�ce
- // niezb�dne interfejsy.
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- private int timer;
- private HashSet<Banknot> banknots = new HashSet<>();
- private WidokKolekcji widokKolekcji = new WidokKolekcji(banknots);
- public static void main(String [] args) {
- new Okno();
- }
- JButton authorButton = new JButton("Autor");
- JMenuBar menuBar = new JMenuBar();
- JMenu file = new JMenu("Plik");
- JMenuItem authorMenu = new JMenuItem("Autor");
- JMenuItem closeMenu = new JMenuItem("Zakończ");
- JLabel seconds = new JLabel("Sekundy:");
- JButton resetButton = new JButton("Zeruj");
- JTextField timerField = new JTextField(7);
- JLabel waluta = new JLabel("Waluta: ");
- JLabel wartosc = new JLabel("Wartość: ");
- JTextField walutaField = new JTextField(5);
- JTextField wartoscField = new JTextField(5);
- JButton addBanknot = new JButton("Dodaj Banknot");
- JButton deleteBanknot = new JButton("Usuń Banknot");
- JButton deleteAllBanknots = new JButton("Usuń wszystkie");
- Panel panel = new Panel();
- public Okno() {
- super("Mateusz Polok");
- setSize(600,300);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- setResizable(false);
- setLocationRelativeTo(null);
- file.add(authorMenu);
- file.add(closeMenu);
- menuBar.add(file);
- setJMenuBar(menuBar);
- timerField.setEditable(false);
- timerField.setText(""+timer);
- authorMenu.addActionListener(this);
- closeMenu.addActionListener(this);
- authorButton.addActionListener(this);
- resetButton.addActionListener(this);
- addBanknot.addActionListener(this);
- deleteAllBanknots.addActionListener(this);
- deleteBanknot.addActionListener(this);
- panel.add(authorButton);
- panel.add(seconds);
- panel.add(timerField);
- panel.add(resetButton);
- panel.add(waluta);
- panel.add(walutaField);
- panel.add(wartosc);
- panel.add(wartoscField);
- panel.add(widokKolekcji);
- panel.add(addBanknot);
- panel.add(deleteBanknot);
- panel.add(deleteAllBanknots);
- panel.addMouseListener(panel);
- panel.addMouseMotionListener(panel);
- setContentPane(panel);
- setVisible(true);
- new Thread(this).start();
- panel.run();
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- Object event = e.getSource();
- if(event == authorButton) {
- JOptionPane.showMessageDialog(this, "Mateusz Polok", "Autor", JOptionPane.INFORMATION_MESSAGE);
- }
- if(event == authorMenu) {
- JOptionPane.showMessageDialog(this, "Mateusz Polok", "Autor", JOptionPane.INFORMATION_MESSAGE);
- }
- if(event == closeMenu) {
- System.exit(0);
- }
- if(event == resetButton) {
- timer = 0;
- timerField.setText(""+timer);
- }
- if(event == addBanknot) {
- String waluta;
- int wartosc;
- try {
- wartosc = Integer.parseInt(wartoscField.getText());
- waluta = walutaField.getText();
- if(waluta.length()>0) {
- widokKolekcji.kolekcja.add(new Banknot(waluta, wartosc));
- widokKolekcji.refresh();
- }else {
- JOptionPane.showMessageDialog(this, "Pole waluta nie moze byc puste");
- }
- }catch (NumberFormatException e1) {
- JOptionPane.showMessageDialog(this, "Pole wartosc musi być liczbą!");
- }
- }
- if(event == deleteBanknot) {
- String waluta;
- int wartosc;
- try {
- wartosc = Integer.parseInt(wartoscField.getText());
- waluta = walutaField.getText();
- if(waluta.length()>0) {
- widokKolekcji.kolekcja.remove(new Banknot(waluta, wartosc));
- widokKolekcji.refresh();
- }else {
- JOptionPane.showMessageDialog(this, "Pole waluta nie moze byc puste");
- }
- }catch (NumberFormatException e1) {
- JOptionPane.showMessageDialog(this, "Pole wartosc musi być liczbą!");
- }
- }
- if(event == deleteAllBanknots) {
- widokKolekcji.kolekcja.removeAll(banknots);
- widokKolekcji.refresh();
- }
- }
- @Override
- public void run() {
- while(true) {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- timer++;
- timerField.setText(""+timer);
- }
- }
- } // koniec klasy Okno
- class WidokKolekcji extends JScrollPane {
- private static final long serialVersionUID = 1L;
- // W TEJ KLASIE NIE TRZEBA NIC MODYFIKOWAďż˝ !!!
- private JTable tabela;
- private DefaultTableModel modelTabeli;
- Collection<Banknot> kolekcja;
- /* Do konstruktora nale�y przekaza� referencj�
- * na kolekcj�, kt�rej zawarto�� ma by� wy�wietlana
- * na panelu
- */
- WidokKolekcji(Collection<Banknot> kolekcja) {
- String[] kolumny = {"Waluta:", "Wartość"};
- modelTabeli = new DefaultTableModel(kolumny, 0);
- tabela = new JTable(modelTabeli);
- tabela.setRowSelectionAllowed(false);
- this.kolekcja = kolekcja;
- setViewportView(tabela);
- setPreferredSize(new Dimension(150, 200));
- setBorder(BorderFactory.createTitledBorder("Banknoty"));
- }
- /* Metod� refresh() nale�y wywo�a� po ka�dej
- * modyfikacji zawarto�ci wy�wietlanej kolejcji
- */
- void refresh() {
- modelTabeli.setRowCount(0);
- for (Banknot p : kolekcja) {
- String[] s = {p.waluta, "" + p.wartosc};
- modelTabeli.addRow(s);
- }
- }
- } // koniec klasy WidokKolekcji
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement