/* (swing1.1) */ //package jp.gr.java_conf.tame.swing.examples; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; import javax.swing.event.*; import javax.swing.border.*; import jp.gr.java_conf.tame.swing.table.*; import jp.gr.java_conf.tame.swing.border.*; /** * @version 1.0 3/06/99 */ public class CellBorderTableExample extends JFrame { public CellBorderTableExample() { super( "Cell Border Example" ); final Color color = UIManager.getColor("Table.gridColor"); DefaultTableModel dm = new DefaultTableModel(12,6) { public void setValueAt(Object obj, int row, int col) { if (obj instanceof MyData) { super.setValueAt(obj, row, col); } else { MyData myData=null; Object oldObject = getValueAt(row, col); if (oldObject == null) { myData = new MyData(obj, new LinesBorder(color,0)); } else if (oldObject instanceof MyData) { myData = (MyData)oldObject; } else { System.out.println("error"); return; } myData.setObject(obj); super.setValueAt(myData, row, col); } } }; JTable table = new JTable( dm ); table.setIntercellSpacing(new Dimension(0,0)); table.setCellSelectionEnabled(true); table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); table.setDefaultRenderer(Object.class, new BorderCellRenderer()); JScrollPane scroll = new JScrollPane( table ); ThicknessPanel thicknessPanel = new ThicknessPanel(); Box box = new Box(BoxLayout.Y_AXIS); box.add(thicknessPanel); box.add(new ButtonPanel(table, thicknessPanel)); getContentPane().add(scroll, BorderLayout.CENTER); getContentPane().add(box, BorderLayout.EAST); } public static void main(String[] args) { CellBorderTableExample frame = new CellBorderTableExample(); frame.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit(0); } }); frame.setSize( 400, 240 ); frame.setVisible(true); } class ThicknessPanel extends JPanel { JComboBox[] combos; ThicknessPanel() { String[] str = {"top","left","bottom","right"}; int n = str.length; setLayout(new GridLayout(n,2)); setBorder(new TitledBorder("Thickness")); combos = new JComboBox[n]; for (int i=0;i