Viewing file: comp249/assignment3/ValidMoviesPanel.java | Back to directory listing
Author: Loren Segal | Last modified: February 21 2006 12:00 am | Download

import java.awt.*;
import javax.swing.*;
import java.util.ArrayList;
import java.io.*;
import javax.swing.border.*;
 
/**
  * ValidMoviesPanel is the panel that shows up in the database GUI for valid movies entries
  */
public class ValidMoviesPanel extends JPanel
{
	public ValidMoviesPanel()
	{
		super(new BorderLayout(0,20));
		ArrayList validMovies = null;
 
		// Setup the GUI Elements
		JTable table = null;
		JPanel message = new JPanel();
		message.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
 
		// Load the movie definitions
		try
		{
	        FileInputStream fin = new FileInputStream("validmovies.ser");
	        ObjectInputStream ois = new ObjectInputStream(fin);
	        validMovies = (ArrayList)ois.readObject();
	        ois.close();
		}
		catch (Exception e)
		{
			// Error loading movie definitions
			message.add(new JLabel("Error! Could not load movie database!"));
			add(message, BorderLayout.NORTH);
			return;
		}
		// Loading was success, setup labels in GUI
		message.add(new JLabel("My Great Big List Of Movie Reviews"));
 
		// Generate JTable output
		String[] columnNames = {"Title", "Year", "Rating", "Verdict", "Format"};
		Object[][] fields = new Object[validMovies.size()][columnNames.length];
		for(int i = 0; i < validMovies.size(); i++)
		{
			ValidMovie m = (ValidMovie)validMovies.get(i);
			fields[i][0] = m.getTitle();
			fields[i][1] = m.getYear();
			fields[i][2] = m.getRating();
			fields[i][3] = m.getVerdict();
			fields[i][4] = m.getFormat();
		}
		table = new JTable(fields, columnNames);
		table.setPreferredScrollableViewportSize(new Dimension(500, 300));
 
		// Add elements to the panel
		add(message, BorderLayout.NORTH);
		add(new JScrollPane(table), BorderLayout.CENTER);
	}
}