Java使用自定义的tableModel,设置可编辑方式
[java]
package com.han;
import java.awt.BorderLayout;
import java.util.Vector;
import javax.swing.JFrame;
/**
* Provide a fixed column in a table.
*
* <code><p>public boolean isCellEditable(int row, int column) {<p>
return getModel().isCellEditable(convertRowIndexToModel(row),<p>
convertColumnIndexToModel(column));<p>
}<p>
</code>
* so we can also directly rewrite the isCellEditable() in the table model.
*
* @author Gaowen
*
*/
public class JTable4_Modified extends JFrame {
/**
*
*/
private static final long serialVersionUID = 805308369080023303L;
public JTable4_Modified() {
super();
setTitle("提供行标题栏的表格");
setBounds(100, 100, 500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Vector<String> columnNameV = new Vector<String>();
columnNameV.add("日期");
for (int i = 1; i < 21; i++) {
columnNameV.add("商品" + i);
}
Vector<Vector<Object>> tableValueV = new Vector<Vector<Object>>();
for (int row = 1; row < 31; row++) {
Vector<Object> rowV = new Vector<Object>();
rowV.add(row);
for (int col = 0; col < 20; col++) {
rowV.add((int) (Math.random() * 1000));
}
tableValueV.add(rowV);
}
final MFixedColumnTable_Modified panel = new MFixedColumnTable_Modified(columnNameV,
tableValueV, 1);
getContentPane().add(panel, BorderLayout.CENTER);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JTable4_Modified frame = new JTable4_Modified();
frame.setVisible(true);
}
}
package com.han;
import java.awt.BorderLayout;
import java.util.Vector;
import javax.swing.JFrame;
/**
* Provide a fixed column in a table.
*
* <code><p>public boolean isCellEditable(int row, int column) {<p>
return getModel().isCellEditable(convertRowIndexToModel(row),<p>
convertColumnIndexToModel(column));<p>
}<p>
</code>
* so we can also directly rewrite the isCellEditable() in the table model.
*
* @author Gaowen
*
*/
public class JTable4_Modified extends JFrame {
/**
*
*/
private static final long serialVersionUID = 805308369080023303L;
public JTable4_Modified() {
super();
setTitle("提供行标题栏的表格");
setBounds(100, 100, 500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Vector<String> columnNameV = new Vector<String>();
columnNameV.add("日期");
for (int i = 1; i < 21; i++) {
columnNameV.add("商品" + i);
}
Vector<Vector<Object>> tableValueV = new Vector<Vector<Object>>();
for (int row = 1; row < 31; row++) {
Vector<Object> rowV = new Vector<Object>();
rowV.add(row);
for (int col = 0; col < 20; col++) {
rowV.add((int) (Math.random() * 1000));
}
tableValueV.add(rowV);
}
final MFixedColumnTable_Modified panel = new MFixedColumnTable_Modified(columnNameV,
tableValueV, 1);
getContentPane().add(panel, BorderLayout.CENTER);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JTable4_Modified frame = new JTable4_Modified();
frame.setVisible(true);
}
}
[java]
package com.han;
import java.awt.BorderLayout;
import java.util.Vector;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JViewport;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.AbstractTableModel;
/**
* <code><p>public boolean isCellEditable(int row, int column) {<p>
return getModel().isCellEditable(convertRowIndexToModel(row),<p>
convertColumnIndexToModel(column));<p>
}<p>
</code>
* so we can also directly rewrite the isCellEditable() in the table model.
*
* @author HAN
补充:软件开发 , Java ,