📄 starstablepanel.java
字号:
package org.impact.stars.appclient.common;/* * starstable.java * * Created on December 28, 2001, 4:38 PM */import javax.swing.*;import javax.swing.table.*;import javax.swing.event.*;import javax.swing.border.*;import java.awt.*;import java.awt.event.*;import java.util.*;public class StarsTablePanel extends JPanel { JTable tableView; JScrollPane scrollpane; Dimension origin = new Dimension(0, 0); /* JCheckBox isColumnReorderingAllowedCheckBox; JCheckBox showHorizontalLinesCheckBox; JCheckBox showVerticalLinesCheckBox; JCheckBox isColumnSelectionAllowedCheckBox; JCheckBox isRowSelectionAllowedCheckBox; JCheckBox isRowAndColumnSelectionAllowedCheckBox; JLabel interCellSpacingLabel; JLabel rowHeightLabel; JSlider interCellSpacingSlider; JSlider rowHeightSlider; JComponent selectionModeButtons; JComponent resizeModeButtons; */ public JButton saveButton; public JButton editButton; public JButton resetButton; public JButton cancelButton; JPanel mainPanel; JPanel controlPanel; JScrollPane tableAggregate; public StarsTablePanel() { super(); } public StarsTablePanel(String[] name, Object[][] data) { super(); setLayout(new BorderLayout()); mainPanel = this; controlPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); //controlPanel.setBorder(new javax.swing.border.LineBorder(java.awt.Color.gray)); //controlPanel.setBorder(new javax.swing.border.EtchedBorder()); /* JPanel column1 = new JPanel(new FlowLayout() ); JPanel column2 = new JPanel(new FlowLayout() ); JPanel column3 = new JPanel(new FlowLayout() ); */ mainPanel.add(controlPanel, BorderLayout.NORTH); saveButton = new JButton("Save"); controlPanel.add(saveButton); editButton = new JButton("Edit"); controlPanel.add(editButton); resetButton = new JButton("Reset"); controlPanel.add(resetButton); cancelButton = new JButton("Cancel"); controlPanel.add(cancelButton); /* resetButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { resetdata(); tableView.repaint(); } } ); */ // start column 1 /* isColumnReorderingAllowedCheckBox = new JCheckBox("Reordering allowed", true); column1.add(isColumnReorderingAllowedCheckBox); isColumnReorderingAllowedCheckBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { boolean flag = ((JCheckBox)e.getSource()).isSelected(); tableView.getTableHeader().setReorderingAllowed(flag); tableView.repaint(); } }); showHorizontalLinesCheckBox = new JCheckBox("Horiz. Lines", true); column1.add(showHorizontalLinesCheckBox); showHorizontalLinesCheckBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { boolean flag = ((JCheckBox)e.getSource()).isSelected(); tableView.setShowHorizontalLines(flag); ; tableView.repaint(); } }); showVerticalLinesCheckBox = new JCheckBox("Vert. Lines", true); column1.add(showVerticalLinesCheckBox); showVerticalLinesCheckBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { boolean flag = ((JCheckBox)e.getSource()).isSelected(); tableView.setShowVerticalLines(flag); ; tableView.repaint(); } }); interCellSpacingLabel = new JLabel("Inter-cell spacing:"); column1.add(interCellSpacingLabel); interCellSpacingSlider = new JSlider(JSlider.HORIZONTAL, 0, 10, 1); interCellSpacingSlider.getAccessibleContext().setAccessibleName("Inter-cell spacing"); interCellSpacingLabel.setLabelFor(interCellSpacingSlider); column1.add(interCellSpacingSlider); interCellSpacingSlider.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { int spacing = ((JSlider)e.getSource()).getValue(); tableView.setIntercellSpacing(new Dimension(spacing, spacing)); tableView.repaint(); } }); controlPanel.add(column1); // start column 2 isColumnSelectionAllowedCheckBox = new JCheckBox("Column selection", false); column2.add(isColumnSelectionAllowedCheckBox); isColumnSelectionAllowedCheckBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { boolean flag = ((JCheckBox)e.getSource()).isSelected(); tableView.setColumnSelectionAllowed(flag); ; tableView.repaint(); } }); isRowSelectionAllowedCheckBox = new JCheckBox("Row selection", true); column2.add(isRowSelectionAllowedCheckBox); isRowSelectionAllowedCheckBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { boolean flag = ((JCheckBox)e.getSource()).isSelected(); tableView.setRowSelectionAllowed(flag); ; tableView.repaint(); } }); isRowAndColumnSelectionAllowedCheckBox = new JCheckBox("Cell selection", false); column2.add(isRowAndColumnSelectionAllowedCheckBox); isRowAndColumnSelectionAllowedCheckBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { boolean flag = ((JCheckBox)e.getSource()).isSelected(); tableView.setCellSelectionEnabled(flag); ; tableView.repaint(); } }); rowHeightLabel = new JLabel("Row height:"); column2.add(rowHeightLabel); rowHeightSlider = new JSlider(JSlider.HORIZONTAL, 5, 100, 20); rowHeightSlider.getAccessibleContext().setAccessibleName("Row height"); rowHeightLabel.setLabelFor(rowHeightSlider); column2.add(rowHeightSlider); rowHeightSlider.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { int height = ((JSlider)e.getSource()).getValue(); tableView.setRowHeight(height); tableView.repaint(); } }); controlPanel.add(column2); // ComboBox for selection modes. JPanel selectMode = new JPanel(); column3.setLayout(new FlowLayout()); selectMode.setBorder(new TitledBorder("Selection mode")); JComboBox selectionModeComboBox = new JComboBox(); selectionModeComboBox.addItem("Single"); selectionModeComboBox.addItem("One range"); selectionModeComboBox.addItem("Multiple ranges"); selectionModeComboBox.setSelectedIndex(tableView.getSelectionModel().getSelectionMode()); selectionModeComboBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { JComboBox source = (JComboBox)e.getSource(); tableView.setSelectionMode(source.getSelectedIndex()); } }); selectMode.add(selectionModeComboBox); column3.add(selectMode); // Combo box for table resize mode. JPanel resizeMode = new JPanel(); resizeMode.setBorder(new TitledBorder("Autoresize mode")); JComboBox resizeModeComboBox = new JComboBox(); resizeModeComboBox.addItem("Off"); resizeModeComboBox.addItem("Column boundries"); resizeModeComboBox.addItem("Subsequent columns"); resizeModeComboBox.addItem("Last column"); resizeModeComboBox.addItem("All columns"); resizeModeComboBox.setSelectedIndex(tableView.getAutoResizeMode()); resizeModeComboBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { JComboBox source = (JComboBox)e.getSource(); tableView.setAutoResizeMode(source.getSelectedIndex()); } }); resizeMode.add(resizeModeComboBox); column3.add(resizeMode); controlPanel.add(column3); */ // Create the table. tableAggregate = createTable(name, data); mainPanel.add(tableAggregate, BorderLayout.CENTER); } public JScrollPane createTable(String[] anames, Object[][] adata) { final String[] names = anames; final Object[][] data = adata; /* final String[] names = {"First Name", "Last Name", "Favorite Color", "Favorite Sport", "Favorite Number"}; // Create the dummy data (a few rows of names) final Object[][] data = { {"Mike", "Albers", Color.green, "Soccer", new Integer(44)}, {"Mark", "Andrews", Color.red, "Baseball", new Integer(2)}, {"Tom", "Ball", Color.blue, "Football", new Integer(99)}, }; getCellClass */ // Create a model of the data. TableModel dataModel = new AbstractTableModel() { public int getColumnCount() { return names.length; } public int getRowCount() { return data.length;} public Object getValueAt(int row, int col) {return data[row][col];} public String getColumnName(int column) {return names[column];} public Class getColumnClass(int c) {return getValueAt(0, c).getClass();} public boolean isCellEditable(int row, int col) {return ((getValueAt(row, col).getClass() == String.class)&&(col!=0));} public void setValueAt(Object aValue, int row, int column) { data[row][column] = aValue; } }; // Create the table tableView = new JTable(dataModel); tableView.setBorder(new javax.swing.border.EtchedBorder()); // Show colors by rendering them in their own color. DefaultTableCellRenderer colorRenderer = new DefaultTableCellRenderer() { public void setValue(Object value) { if (value instanceof Color) { Color c = (Color)value; setForeground(c); setText(c.getRed() + ", " + c.getGreen() + ", " + c.getBlue()); } } }; colorRenderer.setHorizontalAlignment(JLabel.RIGHT); //tableView.getColumn("Favorite Color").setCellRenderer(colorRenderer); tableView.setRowHeight(25); scrollpane = new JScrollPane(tableView); return scrollpane; } public JTable getTableView() { return tableView; } public void resetdata(){ for (int i=0; i< tableView.getRowCount();i++) { tableView.setValueAt(" ", i, 1); } tableView.repaint(); } public void resetdata(Object[][] data){ for (int i=0; i< tableView.getRowCount();i++) { tableView.setValueAt(data[i][1], i, 1); } tableView.repaint(); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -