Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.util.LinkedList;
- import javax.swing.*;
- import javax.swing.JTable;
- import java.util.List.*;
- import javax.swing.table.TableModel;
- import javax.swing.table.TableRowSorter;
- import java.io.FileWriter;
- import java.io.IOException;
- public class GUI_g extends JFrame {
- public String[] channels = {"Channel 1", "Channel 2"};
- public JTable listTable;
- public String ptmCol[] = {"Genre","Title","Duration","Actor", "Director", "Rentable"};
- public void buildGui() {
- final JFrame frame = new JFrame("Hotel TV Scheduler");
- frame.setSize(1024, 768);
- JPanel mainPanel = new JPanel();
- mainPanel.setLayout(new BorderLayout(0,0));
- final JPanel chPanel = new JPanel();
- chPanel.setLayout(new BoxLayout(chPanel, BoxLayout.Y_AXIS));
- final JPanel listPanel = new JPanel();
- listPanel.setLayout(new BoxLayout(listPanel, BoxLayout.Y_AXIS));
- JPanel infoPanel = new JPanel();
- infoPanel.setLayout(new GridLayout(0,2, 2, 0));
- final JPanel tablePanel = new JPanel();
- tablePanel.setLayout(new GridLayout(1,2));
- JPanel centrePanel = new JPanel();
- centrePanel.setLayout(new GridLayout(0,1));
- JPanel southPanel = new JPanel();
- mainPanel.add(chPanel, BorderLayout.WEST);
- mainPanel.add(listPanel, BorderLayout.EAST);
- mainPanel.add(centrePanel, BorderLayout.CENTER);
- mainPanel.add(southPanel, BorderLayout.SOUTH);
- JButton exitBtn = new JButton("Exit");
- JButton saveBtn = new JButton("Save");
- southPanel.add(saveBtn);
- southPanel.add(exitBtn);
- LinkedList schedule = new LinkedList();
- schedule = (LinkedList) Processing.readAllData();
- final ProgramTableModel progTableModel = new ProgramTableModel(schedule);
- final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(progTableModel);
- final LinkedList channel1DataTitle = new LinkedList();
- for(int i = 0; i < 36; i++)
- channel1DataTitle.add(i, "");
- final LinkedList channel1DataGenre = new LinkedList();
- for(int i = 0; i < 36; i++)
- channel1DataGenre.add(i, "");
- ChannelTableModel ctm = new ChannelTableModel(channel1DataTitle, channel1DataGenre);
- final JTable chTable = new JTable(ctm);
- JScrollPane scrollPaneCh = new JScrollPane(chTable);
- final JTable listTable = new JTable(progTableModel);
- JScrollPane scrollPaneList = new JScrollPane(listTable);
- String[] day = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ,"Sunday"};
- JComboBox dayList = new JComboBox(day);
- JButton rmvButton = new JButton("Remove Program");
- JButton dayButton = new JButton("Choose");
- JButton clearButton = new JButton("Clear Channel");
- tablePanel.add(scrollPaneCh);
- chPanel.add(dayList);
- chPanel.add(dayButton);
- chPanel.add(chTable);
- chPanel.add(rmvButton);
- JLabel listLabel = new JLabel("List:");
- String genre[] = {"All", "Movie", "Drama", "Comedy", "Hotel", "Music"};
- final JComboBox genreList = new JComboBox(genre);
- genreList.setPrototypeDisplayValue("Hotel Info");
- JButton genreButton = new JButton("Search");
- listPanel.add(listLabel);
- listPanel.add(scrollPaneList);
- listPanel.add(genreList);
- listPanel.add(genreButton);
- JLabel titleLabel = new JLabel("Title");
- JLabel genreLabel = new JLabel("Genre");
- JLabel durationLabel = new JLabel("Duration");
- JLabel actorLabel = new JLabel("Actor");
- JLabel directorLabel = new JLabel("Director");
- JLabel rentableLabel = new JLabel("Rentable");
- JLabel ratingLabel = new JLabel("Rating");
- JLabel synLabel = new JLabel("Synopsis");
- final JTextField txtTitle = new JTextField();
- final JTextField txtGenre = new JTextField();
- final JTextField txtDuration = new JTextField();
- final JTextField txtActor = new JTextField();
- final JTextField txtDirector = new JTextField();
- final JTextField txtRent = new JTextField();
- final JTextField txtRating = new JTextField();
- final JTextField txtSynopsis = new JTextField(4);
- JScrollPane synPane = new JScrollPane(txtSynopsis);
- txtTitle.setEnabled(false);
- txtGenre.setEnabled(false);
- txtDuration.setEnabled(false);
- txtActor.setEnabled(false);
- txtDirector.setEnabled(false);
- txtRent.setEnabled(false);
- txtRating.setEnabled(false);
- txtSynopsis.setEnabled(false);
- txtTitle.setDisabledTextColor(Color.BLACK);
- txtGenre.setDisabledTextColor(Color.BLACK);
- txtDuration.setDisabledTextColor(Color.BLACK);
- txtActor.setDisabledTextColor(Color.BLACK);
- txtDirector.setDisabledTextColor(Color.BLACK);
- txtRent.setDisabledTextColor(Color.BLACK);
- txtRating.setDisabledTextColor(Color.BLACK);
- txtSynopsis.setDisabledTextColor(Color.BLACK);
- final JCheckBox rentCB = new JCheckBox();
- JButton btnAddProg = new JButton("Add Program");
- JList channelList = new JList(channels);
- JList timeList = new JList();
- infoPanel.add(titleLabel);
- infoPanel.add(txtTitle);
- infoPanel.add(genreLabel);
- infoPanel.add(txtGenre);
- infoPanel.add(durationLabel);
- infoPanel.add(txtDuration);
- infoPanel.add(actorLabel);
- infoPanel.add(txtActor);
- infoPanel.add(directorLabel);
- infoPanel.add(txtDirector);
- infoPanel.add(rentableLabel);
- infoPanel.add(txtRent);
- infoPanel.add(ratingLabel);
- infoPanel.add(txtRating);
- infoPanel.add(synLabel);
- infoPanel.add(synPane);
- infoPanel.add(btnAddProg);
- listTable.addMouseListener(new MouseAdapter() {
- public void mouseClicked(MouseEvent e) {
- if (e.getClickCount() == 1) {
- JTable target = (JTable)e.getSource();
- int row = target.getSelectedRow();
- int column = 0;
- String title = listTable.getValueAt(row, column).toString();
- String duration = listTable.getValueAt(row, column+1).toString();
- String genre = listTable.getValueAt(row, column+2).toString();
- String actor = listTable.getValueAt(row, column+3).toString();
- String director = listTable.getValueAt(row, column+4).toString();
- //String rentable = listTable.getValueAt(row, column+5).toString();
- //String synopsis = listTable.getValueAt(row, column+6).toString();
- txtTitle.setText(title);
- txtDuration.setText(duration);
- txtGenre.setText(genre);
- txtActor.setText(actor);
- txtDirector.setText(director);
- }
- }
- });
- btnAddProg.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- try {
- int dur = Integer.parseInt(progTableModel.getValueAt(listTable.getSelectedRow(), 1).toString()) / 30;
- int durT = Integer.parseInt(progTableModel.getValueAt(listTable.getSelectedRow(), 1).toString());
- if(durT % 30 != 0)
- {
- dur += 1;
- }
- for(int i = 0; i < dur; i++)
- {
- String value = progTableModel.getValueAt(listTable.getSelectedRow(), 0).toString();
- String value2 = progTableModel.getValueAt(listTable.getSelectedRow(), 2).toString();
- channel1DataTitle.set(chTable.getSelectedRow()+i, value);
- channel1DataGenre.set(chTable.getSelectedRow()+i, value2);
- }
- chTable.repaint();
- } catch (IndexOutOfBoundsException f) {
- JOptionPane.showMessageDialog(frame,
- "Please make a selection from both tables.",
- "No selection detected",
- JOptionPane.DEFAULT_OPTION);
- }
- }
- });
- genreButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- listTable.setRowSorter(sorter);
- if (genreList.getSelectedItem() != "All") {
- String text = genreList.getSelectedItem().toString().toUpperCase();
- sorter.setRowFilter(
- RowFilter.regexFilter(text));
- }
- else {
- sorter.setRowFilter(null);
- }
- }
- });
- rmvButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- String value = "";
- String value2 = "";
- channel1DataTitle.set(chTable.getSelectedRow(), value);
- channel1DataGenre.set(chTable.getSelectedRow(), value2);
- chTable.repaint();
- }
- });
- exitBtn.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- System.exit(0);
- }
- });
- saveBtn.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- StringBuffer fileContent = new StringBuffer();
- TableModel tModel = chTable.getModel();
- for (int i = 0; i < tModel.getRowCount(); i++) {
- Object time = tModel.getValueAt(i, 0);
- Object title = tModel.getValueAt(i, 1);
- Object genre = tModel.getValueAt(i, 2);
- fileContent.append(time);
- fileContent.append("\r\t");
- fileContent.append(title);
- fileContent.append("\r\t");
- fileContent.append(genre);
- fileContent.append("\r\n");
- }
- try {
- BufferedWriter Writer = new BufferedWriter(new FileWriter("schedule.txt"));
- Writer.write(fileContent.toString());
- Writer.newLine();
- Writer.flush();
- Writer.close();
- } catch(IOException ex) {
- JOptionPane.showMessageDialog(frame,
- "Failed",
- "Failed to write to file",
- JOptionPane.DEFAULT_OPTION);
- }
- }
- });
- centrePanel.add(infoPanel);
- frame.add(mainPanel);
- frame.setVisible(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement