Mitko_jos

lab04_ia v2

Nov 20th, 2013
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.05 KB | None | 0 0
  1. package lab4;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.EventQueue;
  5. import java.awt.Image;
  6.  
  7. import javax.imageio.ImageIO;
  8. import javax.swing.JFrame;
  9. import javax.swing.JPanel;
  10. import javax.swing.border.EmptyBorder;
  11. import java.awt.GridLayout;
  12. import javax.swing.JTextArea;
  13. import javax.swing.border.TitledBorder;
  14. import javax.swing.BoxLayout;
  15. import javax.swing.ImageIcon;
  16. import javax.swing.JList;
  17. import javax.swing.JOptionPane;
  18. import javax.swing.JSlider;
  19. import javax.swing.JLabel;
  20. import javax.swing.JTextField;
  21. import javax.swing.JButton;
  22. import javax.swing.ListSelectionModel;
  23. import javax.swing.event.ChangeListener;
  24. import javax.swing.event.ChangeEvent;
  25. import java.awt.FlowLayout;
  26. import javax.swing.JScrollPane;
  27. import javax.swing.event.ListSelectionListener;
  28. import javax.swing.event.ListSelectionEvent;
  29. import java.awt.event.ActionListener;
  30. import java.awt.event.ActionEvent;
  31. import java.awt.image.BufferedImage;
  32. import java.io.File;
  33. import java.io.IOException;
  34.  
  35. public class Books extends JFrame {
  36.  
  37.     /**
  38.      *
  39.      */
  40.     private static final long serialVersionUID = 1L;
  41.     private static String cart = "";
  42.     private JPanel contentPane;
  43.     private JTextField title;
  44.     private JTextField isbn;
  45.     private JTextField year;
  46.     private JTextField publisher;
  47.  
  48.     /**
  49.      * Launch the application.
  50.      */
  51.     public static void main(String[] args) {
  52.         EventQueue.invokeLater(new Runnable() {
  53.             public void run() {
  54.                 try {
  55.                     Books frame = new Books();
  56.                     frame.setVisible(true);
  57.                 } catch (Exception e) {
  58.                     e.printStackTrace();
  59.                 }
  60.             }
  61.         });
  62.     }
  63.  
  64.     /**
  65.      * Create the frame.
  66.      */
  67.     public Books() {
  68.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  69.         setBounds(100, 100, 1020, 600);
  70.         contentPane = new JPanel();
  71.         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  72.         setContentPane(contentPane);
  73.         contentPane.setLayout(new GridLayout(0, 3, 0, 0));
  74.        
  75.         JPanel panel = new JPanel();
  76.         contentPane.add(panel);
  77.         panel.setLayout(new GridLayout(0, 1, 0, 0));
  78.        
  79.         JPanel panel_3 = new JPanel();
  80.         panel_3.setBorder(new TitledBorder(null, "Book list:", TitledBorder.LEADING, TitledBorder.TOP, null, null));
  81.         panel.add(panel_3);
  82.         panel_3.setLayout(new GridLayout(0, 1, 0, 0));
  83.         Database.initDatabase();
  84.         Book b[] = Database.getBooks(2000);
  85.         final JList<Object> list = new JList<Object>(b);       
  86.         list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  87.         list.setSelectedIndex(0);
  88.         final JScrollPane scrollPane = new JScrollPane(list);
  89.         panel_3.add(scrollPane);
  90.        
  91.         JPanel panel_4 = new JPanel();
  92.         panel.add(panel_4);
  93.         panel_4.setLayout(new GridLayout(0, 1, 0, 0));
  94.        
  95.         final JSlider slider = new JSlider();
  96.        
  97.         slider.setPaintTicks(true);
  98.         slider.setMinorTickSpacing(1);
  99.         slider.setMajorTickSpacing(1);
  100.         slider.setValue(2000);
  101.         slider.setMaximum(2014);
  102.         slider.setMinimum(2000);
  103.         panel_4.add(slider);
  104.        
  105.         JPanel panel_6 = new JPanel();
  106.         panel_4.add(panel_6);
  107.         panel_6.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
  108.        
  109.         final JLabel sliderValue = new JLabel("2000");
  110.         panel_6.add(sliderValue);
  111.        
  112.         JLabel lblNewLabel = new JLabel("");
  113.         panel_4.add(lblNewLabel);
  114.        
  115.         JPanel panel_1 = new JPanel();
  116.         contentPane.add(panel_1);
  117.         panel_1.setLayout(new BorderLayout(0, 0));
  118.        
  119.         final JLabel image = new JLabel();
  120.         image.setIcon(new ImageIcon("C:\\Users\\Goce\\Desktop\\labia\\pictures\\picture1.jpg"));
  121.         panel_1.add(image, BorderLayout.NORTH);
  122.        
  123.         JPanel panel_5 = new JPanel();
  124.         panel_1.add(panel_5, BorderLayout.CENTER);
  125.         panel_5.setLayout(new GridLayout(8, 0, 0, 0));
  126.        
  127.         JLabel lblNewLabel_1 = new JLabel("Title");
  128.         panel_5.add(lblNewLabel_1);
  129.        
  130.         title = new JTextField();
  131.         title.setEditable(false);
  132.         panel_5.add(title);
  133.         title.setColumns(10);
  134.        
  135.         JLabel lblNewLabel_2 = new JLabel("ISBN");
  136.         panel_5.add(lblNewLabel_2);
  137.        
  138.         isbn = new JTextField();
  139.         isbn.setEditable(false);
  140.         panel_5.add(isbn);
  141.         isbn.setColumns(10);
  142.        
  143.         JLabel lblNewLabel_3 = new JLabel("Year");
  144.         panel_5.add(lblNewLabel_3);
  145.        
  146.         year = new JTextField();
  147.         year.setEditable(false);
  148.         panel_5.add(year);
  149.         year.setColumns(10);
  150.        
  151.         JLabel lblNewLabel_4 = new JLabel("Publisher");
  152.         panel_5.add(lblNewLabel_4);
  153.        
  154.         publisher = new JTextField();
  155.         publisher.setEditable(false);
  156.         panel_5.add(publisher);
  157.         publisher.setColumns(10);
  158.        
  159.         JPanel addToCart = new JPanel();
  160.         panel_1.add(addToCart, BorderLayout.SOUTH);
  161.         addToCart.setLayout(new BoxLayout(addToCart, BoxLayout.X_AXIS));
  162.        
  163.         JButton btnNewButton = new JButton("Add to cart >>");
  164.        
  165.         addToCart.add(btnNewButton);
  166.        
  167.         JPanel panel_2 = new JPanel();
  168.         panel_2.setBorder(new TitledBorder(null, "Ordered books:", TitledBorder.LEADING, TitledBorder.TOP, null, null));
  169.         contentPane.add(panel_2);
  170.         panel_2.setLayout(new GridLayout(1, 0, 0, 0));
  171.        
  172.         final JTextArea textArea = new JTextArea();
  173.         textArea.setEditable(false);
  174.         panel_2.add(textArea); 
  175.        
  176.         title.setText(((Book)list.getSelectedValue()).getTitle());
  177.         isbn.setText(((Book)list.getSelectedValue()).getISBN());
  178.         publisher.setText(((Book)list.getSelectedValue()).getPublisher());
  179.         year.setText(String.format("%d", ((Book)list.getSelectedValue()).getYear()));
  180.         BufferedImage img = null;
  181.         try {
  182.             img = ImageIO.read(new File("C:\\Users\\Goce\\Desktop\\labia\\pictures\\picture1.jpg"));
  183.         } catch (IOException e) {
  184.             // TODO Auto-generated catch block
  185.             e.printStackTrace();
  186.         }
  187.         Image bimg = img.getScaledInstance(330, 300, Image.SCALE_SMOOTH);
  188.         ImageIcon ic = new ImageIcon(bimg);
  189.         image.setIcon(ic);
  190.        
  191.         slider.addChangeListener(new ChangeListener() {
  192.             public void stateChanged(ChangeEvent arg0) {
  193.                 sliderValue.setText(String.format("%d", slider.getValue()));
  194.                 Book bks[] = Database.getBooks(slider.getValue());
  195.                 list.setListData(bks);
  196.             }
  197.         });
  198.         list.addListSelectionListener(new ListSelectionListener() {
  199.             public void valueChanged(ListSelectionEvent arg0) {
  200.                 title.setText(((Book)list.getSelectedValue()).getTitle());
  201.                 isbn.setText(((Book)list.getSelectedValue()).getISBN());
  202.                 publisher.setText(((Book)list.getSelectedValue()).getPublisher());
  203.                 year.setText(String.format("%d", ((Book)list.getSelectedValue()).getYear()));
  204.                 BufferedImage img = null;
  205.                 try {
  206.                     img = ImageIO.read(new File("C:\\Users\\Goce\\Desktop\\labia\\pictures\\" + ((Book)list.getSelectedValue()).getPicture()));
  207.                 } catch (IOException e) {
  208.                     // TODO Auto-generated catch block
  209.                     e.printStackTrace();
  210.                 }
  211.                 Image bimg = img.getScaledInstance(image.getWidth(), image.getHeight(), Image.SCALE_SMOOTH);
  212.                 ImageIcon ic = new ImageIcon(bimg);
  213.                 image.setIcon(ic);
  214.             }
  215.         });
  216.         btnNewButton.addActionListener(new ActionListener() {
  217.             public void actionPerformed(ActionEvent arg0) {
  218.                 if (cart.contains(((Book)list.getSelectedValue()).toString())) {
  219.                     JOptionPane.showMessageDialog(new JFrame(), String.format("'%s' is already in the cart.", ((Book)list.getSelectedValue()).toString()));
  220.                 }
  221.                 else {
  222.                     cart += ((Book)list.getSelectedValue()).toString() + "\n";
  223.                     textArea.setText(cart);
  224.                 }
  225.             }
  226.         });
  227.        
  228.     }
  229.  
  230. }
Advertisement
Add Comment
Please, Sign In to add comment