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);
}
} Powered by
GeSHi Syntax Highlighting software.
Author of all (other) material unless otherwise specified:
Loren Segal. Copyright 2005.