📄 jtest.java
字号:
package vocal.userEditor;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class JTest extends JFrame
{
protected JTable m_table;
protected TableData m_data;
protected TXIManageUserWarehouse manageUserWarehouse=new TXIManageUserWarehouse(true);
public JTest() {
super("Expense Report");
setSize(200, 200);
m_data = new TableData(manageUserWarehouse);
//m_data.addTableModelListener(new a());
m_table = new JTable();
m_table.setModel(m_data);
//m_table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//第一列的属性
TableCellRenderer renderer = new CheckCellRenderer();
TableCellEditor editor = new ChangeButtonEditor(new JCheckBox(),m_table,manageUserWarehouse,m_data);
TableColumn column = new TableColumn(0,30,renderer, editor);
m_table.addColumn(column);
JScrollPane ps = new JScrollPane();
ps.setSize(220, 220);
ps.getViewport().add(m_table);
getContentPane().add(ps, BorderLayout.CENTER);
/*
WindowListener wndCloser = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
addWindowListener(wndCloser);
*/
setVisible(true);
}
class CheckCellRenderer extends JCheckBox implements TableCellRenderer
{
protected Border m_noFocusBorder;
public CheckCellRenderer() {
super();
m_noFocusBorder = new EmptyBorder(1, 2, 1, 2);
setOpaque(true);
setBorder(m_noFocusBorder);
}
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column)
{
if (value instanceof Boolean) {
Boolean b = (Boolean)value;
setSelected(b.booleanValue());
}
setBackground(isSelected && !hasFocus ?
table.getSelectionBackground() : table.getBackground());
setForeground(isSelected && !hasFocus ?
table.getSelectionForeground() : table.getForeground());
setFont(table.getFont());
setBorder(hasFocus ? UIManager.getBorder(
"Table.focusCellHighlightBorder") : m_noFocusBorder);
return this;
}
}
class TableData extends AbstractTableModel
{
protected Vector m_vector;
protected Vector temp_vector;
protected TXIManageUserWarehouse manageUserWarehouse;
public TableData(TXIManageUserWarehouse manageUserWarehouse) {
this.manageUserWarehouse=manageUserWarehouse;
m_vector = new Vector();
setDefaultData();
}
public void setDefaultData() {
m_vector.removeAllElements();
temp_vector=manageUserWarehouse.getWarehousegroup();
for(int i=0;i<temp_vector.size();i++)
{
Vector v=new Vector();
String originPower="";
int temp=((TXIManageUserWarehouse.warehouseProperty)temp_vector.elementAt(i)).getOriginpower();
String warehouseName=((TXIManageUserWarehouse.warehouseProperty)temp_vector.elementAt(i)).getWarehousename();
if(0==temp)
originPower="true";
else if(1==temp)
originPower="false";
v.add(Boolean.valueOf(originPower));
v.add(warehouseName);
m_vector.addElement(v);
}
}
public int getRowCount() {
return m_vector==null ? 0 : m_vector.size();
}
public int getColumnCount() {
return 2;
}
public String getColumnName(int column) {
if(column==0)
return "选择";
else
return "仓库名";
}
public boolean isCellEditable(int nRow, int nCol) {
if(0==nCol)
return true;
else
return false;
}
public Object getValueAt(int nRow, int nCol) {
Vector record=(Vector)m_vector.elementAt(nRow);
return record.elementAt(nCol);
}
public void setValueAt(Object value, int nRow, int nCol) {
Vector record=(Vector)m_vector.elementAt(nRow);
record.setElementAt(value,nCol);
}
}
public static void main(String argv[])
{
new JTest();
}
class ChangeButtonEditor extends DefaultCellEditor {
private int hererow;
private JCheckBox m_checkBox;
private int targetPower;//中间变量
private TXIManageUserWarehouse manageUserWarehouse;
int index;//点击的位置
public ChangeButtonEditor(JCheckBox checkBox,final JTable m_table,final TXIManageUserWarehouse manageUserWarehouse,final TableData m_data) {
super(checkBox);
m_checkBox=checkBox;
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
hererow=row;
return m_checkBox;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -