import java.awt.*; import javax.swing.*; import javax.swing.table.*; class DisplayModeTableModel extends AbstractTableModel { private DisplayMode[] modes; private static final int NO = 0; private static final int WIDTH = 1; private static final int HEIGHT = 2; private static final int BIT_DEPTH = 3; private static final int RATE = 4; public DisplayModeTableModel(DisplayMode[] modes){ this.modes = modes; } public int getRowCount(){ return modes.length; } public int getColumnCount(){ return 5; } public Object getValueAt(int row, int column){ int value; switch(column){ case NO: value = row; break; case WIDTH: value = modes[row].getWidth(); break; case HEIGHT: value = modes[row].getHeight(); break; case BIT_DEPTH: value = modes[row].getBitDepth(); break; case RATE: value = modes[row].getRefreshRate(); break; default: value = 0; } return new Integer(value); } public String getColumnName(int column){ switch(column){ case NO: return "No"; case WIDTH: return "Width"; case HEIGHT: return "Height"; case BIT_DEPTH: return "BitDepth"; case RATE: return "RefreshRate"; default: return ""; } } }