📄 simpletabledemo.java
字号:
package boco.test;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: BOCO</p> * @author unascribed * @version 1.0 */import javax.swing.border.Border;import javax.swing.JTable;import javax.swing.JScrollPane;import javax.swing.JPanel;import javax.swing.JFrame;import java.awt.*;import javax.swing.table.*;import java.awt.event.*;import javax.swing.*;public class SimpleTableDemo extends JFrame { private boolean DEBUG = true; class MyTableModel extends AbstractTableModel { final String[] columnNames = {"First Name", "Favorite Color", "Sport", "# of Years", "Vegetarian"}; final Object[][] data = { {"Mary", new Color(153, 0, 153), "Snowboarding", new Integer(5), new Label("ttttttt")}, {"Alison", Color.red , "Rowing", new Integer(3), new Label("ttttttt")}, {"Kathy", new Color(51, 102, 51), "Chasing toddlers", new Integer(2), new Label("ttttttt")}, {"Mark", Color.blue, "Speed reading", new Integer(20), new Label("ttttttt")}, {"Philip", Color.pink, "Pool", new Integer(7), new Label("ttttttt")} }; public int getColumnCount() { return columnNames.length; } public int getRowCount() { return data.length; } public String getColumnName(int col) { return columnNames[col]; } public Object getValueAt(int row, int col) { return data[row][col]; } /* * JTable uses this method to determine the default renderer/ * editor for each cell. If we didn't implement this method, * then the last column would contain text ("true"/"false"), * rather than a check box. */ public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); } /* * Don't need to implement this method unless your table's * editable. */ public boolean isCellEditable(int row, int col) { //Note that the data/cell address is constant, //no matter where the cell appears onscreen. if (col < 1) { return false; } else { return true; } }/* public void setValueAt(Object value, int row, int col) { if (DEBUG) { System.out.println("Setting value at " + row + "," + col + " to " + value + " (an instance of " + value.getClass() + ")"); } data[row][col] = value; fireTableCellUpdated(row, col); if (DEBUG) { System.out.println("New value of data:"); printDebugData(); } } private void printDebugData() { int numRows = getRowCount(); int numCols = getColumnCount(); for (int i=0; i < numRows; i++) { System.out.print(" row " + i + ":"); for (int j=0; j < numCols; j++) { System.out.print(" " + data[i][j]); } System.out.println(); } System.out.println("--------------------------"); }*/ } public void setPower(TableColumn powerColumn) { ImageIcon icon = new ImageIcon("/image/img4.gif"); JLabel jlb = new JLabel(icon); //new JButton(new ImageIcon(getClass().getResource("/image/".concat(String.valueOf(String.valueOf("img1.gif")))))); //DefaultTableCellRenderer renderer =new DefaultTableCellRenderer(); //renderer.setToolTipText("点击选择权限"); //powerColumn.setCellRenderer(renderer); } public SimpleTableDemo() { super("SimpleTableDemo"); /*Object[][] data = { {"Mary", new Color(153, 0, 153), "Snowboarding", new Integer(5), new Boolean(false)}, {"Alison", "Huml", "Rowing", new Integer(3), new Boolean(true)}, {"Kathy", "Walrath", "Chasing toddlers", new Integer(2), new Boolean(false)}, {"Mark", "Andrews", "Speed reading", new Integer(20), new Boolean(true)}, {"Angela", "Lih", "Teaching high school", new Integer(4), new Boolean(false)} };//private JButton jBtn1,jBtn2,jBtn3,jBtn4,jBtn5,jBtn6,jBtn7,jBtn8 String[] columnNames = {"First Name", "Last Name", "Sport", "# of Years", "Vegetarian"}; */ MyTableModel mtm = new MyTableModel(); final JTable table = new JTable(mtm); table.setPreferredScrollableViewportSize(new Dimension(500, 70)); //Color cl = new Color(22222); //table.setBackground(cl) ; table.setValueAt(new Color(153, 0, 153),0,0) ; //setPower(table.getColumnModel().getColumn(0));//设置ComboBox //table.setRowSelectionAllowed(true) ; //table.setRowSelectionInterval(0,0) ;table.setSelectionBackground(Color.red) ; //table.setRowSelectionInterval(1,1) ; // table.setSelectionBackground(Color.red) ; /*if (DEBUG) { table.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { printDebugData(table); } }); }*/ //Create the scroll pane and add the table to it. JScrollPane scrollPane = new JScrollPane(table); //Add the scroll pane to this window. getContentPane().add(scrollPane, BorderLayout.CENTER); //setUpColorRenderer(table); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } //private void setUpColorRenderer(JTable table) { //table.setDefaultRenderer(Color.class,new ColorRenderer(true)); //} /*public void setPower(TableColumn powerColumn) { ImageIcon imager=new ImageIcon("/image/img2.gif"); //Image image = //Image(); JComboBox comboBox = new JComboBox(); comboBox.addItem("没有权限"); comboBox.addItem("读权限"); comboBox.addItem("写权限"); comboBox.addItem("所有权限"); powerColumn.setCellEditor(new DefaultCellEditor(comboBox)); //Set up tool tips for the sport cells. DefaultTableCellRenderer renderer =new DefaultTableCellRenderer(); renderer.setToolTipText("点击选择权限"); powerColumn.setCellRenderer(renderer); //Set up tool tip for the sport column header. TableCellRenderer headerRenderer = powerColumn.getHeaderRenderer(); if (headerRenderer instanceof DefaultTableCellRenderer) { ((DefaultTableCellRenderer)headerRenderer).setToolTipText("点击选择权限"); }*/ /*comboBox.addMouseListener(new java.awt.event.MouseAdapter(){ public void mouseClicked(MouseEvent e){ modTable_mouseClicked(e); modTable.setRowSelectionInterval(rowSel_tmod,rowSel_tmod); } }); */ //} private void printDebugData(JTable table) { /* int numRows = table.getRowCount(); int numCols = table.getColumnCount(); javax.swing.table.TableModel model = table.getModel(); System.out.println("Value of data: "); for (int i=0; i < numRows; i++) { System.out.print(" row " + i + ":"); for (int j=0; j < numCols; j++) { System.out.print(" " + model.getValueAt(i, j)); } System.out.println(); } System.out.println("--------------------------");*/ }/* class ColorRenderer extends JLabel implements TableCellRenderer { Border unselectedBorder = null; Border selectedBorder = null; boolean isBordered = true; public ColorRenderer(boolean isBordered) { super(); this.isBordered = isBordered; setOpaque(true); //MUST do this for background to show up. } public Component getTableCellRendererComponent( JTable table, Object color, boolean isSelected, boolean hasFocus, int row, int column) { setBackground((Color)color); if (isBordered) { if (isSelected) { if (selectedBorder == null) { selectedBorder = BorderFactory.createMatteBorder(2,5,2,5, table.getSelectionBackground()); } setBorder(selectedBorder); } else { if (unselectedBorder == null) { unselectedBorder = BorderFactory.createMatteBorder(2,5,2,5, table.getBackground()); } setBorder(unselectedBorder); } } return this; } }*/ public static void main(String[] args) { SimpleTableDemo frame = new SimpleTableDemo(); frame.pack(); frame.setVisible(true); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -