Advertisement
Guest User

GUI_g

a guest
Apr 14th, 2012
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 14.70 KB | None | 0 0
  1. import java.awt.*;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import java.awt.event.MouseAdapter;
  5. import java.awt.event.MouseEvent;
  6. import java.io.BufferedWriter;
  7. import java.io.File;
  8. import java.util.LinkedList;
  9. import javax.swing.*;
  10. import javax.swing.JTable;
  11. import java.util.List.*;
  12. import javax.swing.table.TableModel;
  13. import javax.swing.table.TableRowSorter;
  14. import java.io.FileWriter;
  15. import java.io.IOException;
  16.  
  17.  
  18. public class GUI_g extends JFrame {
  19.    
  20.        
  21.                public String[] channels = {"Channel 1", "Channel 2"};
  22.                public JTable listTable;
  23.                public String ptmCol[] = {"Genre","Title","Duration","Actor", "Director", "Rentable"};
  24.  
  25.    
  26.     public void buildGui() {
  27.  
  28.         final JFrame frame = new JFrame("Hotel TV Scheduler");
  29.                 frame.setSize(1024, 768);
  30.                
  31.                 JPanel mainPanel = new JPanel();
  32.         mainPanel.setLayout(new BorderLayout(0,0));
  33.                                                
  34.                 final JPanel chPanel = new JPanel();
  35.                 chPanel.setLayout(new BoxLayout(chPanel, BoxLayout.Y_AXIS));
  36.                                                
  37.                 final JPanel listPanel = new JPanel();
  38.                 listPanel.setLayout(new BoxLayout(listPanel, BoxLayout.Y_AXIS));
  39.                
  40.                 JPanel infoPanel = new JPanel();
  41.         infoPanel.setLayout(new GridLayout(0,2, 2, 0));
  42.                                            
  43.                 final JPanel tablePanel = new JPanel();
  44.                 tablePanel.setLayout(new GridLayout(1,2));
  45.    
  46.                 JPanel centrePanel = new JPanel();
  47.                 centrePanel.setLayout(new GridLayout(0,1));
  48.                
  49.                 JPanel southPanel = new JPanel();
  50.              
  51.                                        
  52.                
  53.                 mainPanel.add(chPanel, BorderLayout.WEST);
  54.                 mainPanel.add(listPanel, BorderLayout.EAST);
  55.                 mainPanel.add(centrePanel, BorderLayout.CENTER);
  56.                 mainPanel.add(southPanel, BorderLayout.SOUTH);
  57.                                
  58.                 JButton exitBtn = new JButton("Exit");
  59.                 JButton saveBtn = new JButton("Save");
  60.                
  61.                 southPanel.add(saveBtn);
  62.                 southPanel.add(exitBtn);
  63.                
  64.                 LinkedList schedule = new LinkedList();
  65.                 schedule = (LinkedList) Processing.readAllData();              
  66.                 final ProgramTableModel progTableModel = new ProgramTableModel(schedule);
  67.                
  68.                 final TableRowSorter<TableModel> sorter =  new TableRowSorter<TableModel>(progTableModel);
  69.                
  70.                
  71.                 final LinkedList channel1DataTitle = new LinkedList();
  72.                 for(int i = 0; i < 36; i++)
  73.                     channel1DataTitle.add(i, "");
  74.                
  75.                
  76.                 final LinkedList channel1DataGenre = new LinkedList();
  77.                 for(int i = 0; i < 36; i++)
  78.                     channel1DataGenre.add(i, "");
  79.                
  80.                 ChannelTableModel ctm = new ChannelTableModel(channel1DataTitle, channel1DataGenre);
  81.                 final JTable chTable = new JTable(ctm);
  82.                 JScrollPane  scrollPaneCh = new JScrollPane(chTable);
  83.                          
  84.                 final JTable listTable = new JTable(progTableModel);
  85.                 JScrollPane  scrollPaneList = new JScrollPane(listTable);
  86.                
  87.                
  88.                
  89.                 String[] day = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ,"Sunday"};
  90.              
  91.                 JComboBox dayList = new JComboBox(day);
  92.                
  93.                 JButton rmvButton = new JButton("Remove Program");
  94.                 JButton dayButton = new JButton("Choose");
  95.                 JButton clearButton = new JButton("Clear Channel");
  96.            
  97.                 tablePanel.add(scrollPaneCh);
  98.  
  99.          
  100.                 chPanel.add(dayList);
  101.                 chPanel.add(dayButton);
  102.                 chPanel.add(chTable);
  103.                 chPanel.add(rmvButton);
  104.                
  105.                 JLabel listLabel = new JLabel("List:");
  106.                
  107.                 String genre[] = {"All", "Movie", "Drama", "Comedy", "Hotel", "Music"};
  108.                
  109.                 final JComboBox genreList = new JComboBox(genre);
  110.                 genreList.setPrototypeDisplayValue("Hotel Info");
  111.                 JButton genreButton = new JButton("Search");
  112.                
  113.                
  114.                
  115.                 listPanel.add(listLabel);
  116.                 listPanel.add(scrollPaneList);
  117.                 listPanel.add(genreList);
  118.                 listPanel.add(genreButton);
  119.                
  120.                
  121.                 JLabel titleLabel = new JLabel("Title");
  122.                 JLabel genreLabel = new JLabel("Genre");
  123.                 JLabel durationLabel = new JLabel("Duration");
  124.                 JLabel actorLabel = new JLabel("Actor");
  125.                 JLabel directorLabel = new JLabel("Director");
  126.                 JLabel rentableLabel = new JLabel("Rentable");
  127.                 JLabel ratingLabel = new JLabel("Rating");
  128.                 JLabel synLabel = new JLabel("Synopsis");
  129.                
  130.                 final JTextField txtTitle = new JTextField();          
  131.                 final JTextField txtGenre = new JTextField();
  132.                 final JTextField txtDuration = new JTextField();
  133.                 final JTextField txtActor = new JTextField();
  134.                 final JTextField txtDirector = new JTextField();
  135.                 final JTextField txtRent = new JTextField();
  136.                 final JTextField txtRating = new JTextField();
  137.                 final JTextField txtSynopsis = new JTextField(4);
  138.                 JScrollPane synPane = new JScrollPane(txtSynopsis);
  139.                
  140.                 txtTitle.setEnabled(false);      
  141.                 txtGenre.setEnabled(false);
  142.                 txtDuration.setEnabled(false);
  143.                 txtActor.setEnabled(false);
  144.                 txtDirector.setEnabled(false);
  145.                 txtRent.setEnabled(false);
  146.                 txtRating.setEnabled(false);
  147.                 txtSynopsis.setEnabled(false);
  148.                
  149.                 txtTitle.setDisabledTextColor(Color.BLACK);
  150.                 txtGenre.setDisabledTextColor(Color.BLACK);
  151.                 txtDuration.setDisabledTextColor(Color.BLACK);
  152.                 txtActor.setDisabledTextColor(Color.BLACK);
  153.                 txtDirector.setDisabledTextColor(Color.BLACK);
  154.                 txtRent.setDisabledTextColor(Color.BLACK);
  155.                 txtRating.setDisabledTextColor(Color.BLACK);
  156.                 txtSynopsis.setDisabledTextColor(Color.BLACK);
  157.                
  158.                
  159.              
  160.                                
  161.                 final JCheckBox rentCB = new JCheckBox();
  162.                
  163.                 JButton btnAddProg = new JButton("Add Program");
  164.                
  165.                 JList channelList = new JList(channels);
  166.                 JList timeList = new JList();
  167.                
  168.                 infoPanel.add(titleLabel);
  169.                 infoPanel.add(txtTitle);
  170.                
  171.                 infoPanel.add(genreLabel);
  172.                 infoPanel.add(txtGenre);
  173.                
  174.                 infoPanel.add(durationLabel);
  175.                 infoPanel.add(txtDuration);
  176.                
  177.                 infoPanel.add(actorLabel);
  178.                 infoPanel.add(txtActor);
  179.                
  180.                 infoPanel.add(directorLabel);
  181.                 infoPanel.add(txtDirector);
  182.                
  183.                 infoPanel.add(rentableLabel);
  184.                 infoPanel.add(txtRent);
  185.                
  186.                 infoPanel.add(ratingLabel);
  187.                 infoPanel.add(txtRating);
  188.                
  189.                 infoPanel.add(synLabel);
  190.                 infoPanel.add(synPane);
  191.                  infoPanel.add(btnAddProg);
  192.                                
  193.                 listTable.addMouseListener(new MouseAdapter() {
  194.                  public void mouseClicked(MouseEvent e) {
  195.          
  196.                   if (e.getClickCount() == 1) {
  197.                   JTable target = (JTable)e.getSource();
  198.  
  199.                   int row = target.getSelectedRow();
  200.                   int column = 0;
  201.                  
  202.                   String title = listTable.getValueAt(row, column).toString();
  203.                   String duration = listTable.getValueAt(row, column+1).toString();
  204.                   String genre = listTable.getValueAt(row, column+2).toString();
  205.                   String actor = listTable.getValueAt(row, column+3).toString();
  206.                   String director = listTable.getValueAt(row, column+4).toString();
  207.                   //String rentable = listTable.getValueAt(row, column+5).toString();
  208.                   //String synopsis = listTable.getValueAt(row, column+6).toString();
  209.                  
  210.                   txtTitle.setText(title);
  211.                   txtDuration.setText(duration);
  212.                   txtGenre.setText(genre);
  213.                   txtActor.setText(actor);
  214.                   txtDirector.setText(director);
  215.                  
  216.                   }
  217.                  }
  218.                 });
  219.                
  220.                 btnAddProg.addActionListener(new ActionListener() {
  221.                     public void actionPerformed(ActionEvent e) {
  222.                        
  223.                         try {
  224.                        
  225.                         int dur = Integer.parseInt(progTableModel.getValueAt(listTable.getSelectedRow(), 1).toString()) / 30;
  226.                         int durT = Integer.parseInt(progTableModel.getValueAt(listTable.getSelectedRow(), 1).toString());
  227.             if(durT % 30 != 0)
  228.             {
  229.                 dur += 1;  
  230.             }  
  231.                        
  232.                 for(int i = 0; i < dur; i++)
  233.                 {
  234.                     String value = progTableModel.getValueAt(listTable.getSelectedRow(),  0).toString();
  235.                                         String value2 = progTableModel.getValueAt(listTable.getSelectedRow(),  2).toString();
  236.                                         channel1DataTitle.set(chTable.getSelectedRow()+i, value);
  237.                                         channel1DataGenre.set(chTable.getSelectedRow()+i, value2);
  238.                 }
  239.                                         chTable.repaint();
  240.                         } catch (IndexOutOfBoundsException f) {
  241.                            
  242.                             JOptionPane.showMessageDialog(frame,
  243.                              "Please make a selection from both tables.",
  244.                                 "No selection detected",
  245.                                  JOptionPane.DEFAULT_OPTION);
  246.                            
  247.                            
  248.                         }
  249.                    
  250.                
  251.                     }
  252.                 });
  253.                
  254.                genreButton.addActionListener(new ActionListener() {
  255.                     public void actionPerformed(ActionEvent e) {
  256.                        
  257.                         listTable.setRowSorter(sorter);
  258.                      
  259.                         if (genreList.getSelectedItem() != "All") {
  260.                        String text = genreList.getSelectedItem().toString().toUpperCase();
  261.                        
  262.                        
  263.                        sorter.setRowFilter(
  264.                        RowFilter.regexFilter(text));
  265.                         }                        
  266.                         else {
  267.                            
  268.                             sorter.setRowFilter(null);
  269.                         }
  270.                        
  271.                     }
  272.                 });
  273.                    
  274.                 rmvButton.addActionListener(new ActionListener() {
  275.                     public void actionPerformed(ActionEvent e) {
  276.                      
  277.                  
  278.                       String value = "";
  279.                       String value2 = "";
  280.                                          
  281.                       channel1DataTitle.set(chTable.getSelectedRow(), value);
  282.                       channel1DataGenre.set(chTable.getSelectedRow(), value2);  
  283.                      
  284.                      
  285.                      
  286.                       chTable.repaint();
  287.                        
  288.                     }
  289.                 });
  290.                
  291.                exitBtn.addActionListener(new ActionListener() {
  292.                     public void actionPerformed(ActionEvent e) {
  293.                        
  294.                       System.exit(0);
  295.                    
  296.                
  297.                     }
  298.                 });
  299.                
  300.                saveBtn.addActionListener(new ActionListener() {
  301.                     public void actionPerformed(ActionEvent e) {
  302.                        
  303.                         StringBuffer fileContent = new StringBuffer();
  304.                         TableModel tModel = chTable.getModel();
  305.                         for (int i = 0; i < tModel.getRowCount(); i++) {
  306.                      
  307.                         Object time = tModel.getValueAt(i, 0);
  308.                         Object title = tModel.getValueAt(i, 1);
  309.                         Object genre = tModel.getValueAt(i, 2);
  310.                        
  311.                        
  312.                         fileContent.append(time);
  313.                         fileContent.append("\r\t");
  314.                         fileContent.append(title);
  315.                         fileContent.append("\r\t");
  316.                         fileContent.append(genre);
  317.                         fileContent.append("\r\n");
  318.                        
  319.                         }
  320.                         try {
  321.                         BufferedWriter  Writer = new BufferedWriter(new FileWriter("schedule.txt"));
  322.                         Writer.write(fileContent.toString());
  323.                         Writer.newLine();
  324.                        
  325.                         Writer.flush();
  326.                         Writer.close();
  327.                         } catch(IOException ex) {
  328.                            
  329.                             JOptionPane.showMessageDialog(frame,
  330.                              "Failed",
  331.                                 "Failed to write to file",
  332.                                  JOptionPane.DEFAULT_OPTION);
  333.                            
  334.                            
  335.                         }
  336.                
  337.                     }
  338.                 });
  339.                
  340.                
  341.                
  342.                 centrePanel.add(infoPanel);
  343.              
  344.                 frame.add(mainPanel);
  345.                 frame.setVisible(true);
  346.                
  347.         }
  348.        
  349.          
  350.                
  351.        
  352.    
  353. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement