要交一个作业 需要有 可视化管理系统
以前用过MFC写 但是这次想用swing
现在用的是IDEA的JFromDesigner插件
但是在操作JTable表格的时候不知道如何加入数据
表格的初始化代码在插件自动生成的区域 会被插件后续的改动 覆盖掉
然后 在JTable的详细设定中也只有行列和默认初始内容的设定
所以想问一下这类问题该如何解决 或者有无更好的可视化界面开发程序
要交一个作业 需要有 可视化管理系统
以前用过MFC写 但是这次想用swing
现在用的是IDEA的JFromDesigner插件
但是在操作JTable表格的时候不知道如何加入数据
表格的初始化代码在插件自动生成的区域 会被插件后续的改动 覆盖掉
然后 在JTable的详细设定中也只有行列和默认初始内容的设定
所以想问一下这类问题该如何解决 或者有无更好的可视化界面开发程序
package java3.T10;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
public class TableDemo2 extends JFrame{
JTable dataTable;
public TableDemo2() {
super("表格的使用");
dataTable = new JTable(new MyTableModel());
//设置行高
dataTable.setRowHeight(80);
JScrollPane jp = new JScrollPane(dataTable);
add(jp);
setSize(500,400);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
public static void main(String[] args) {
new TableDemo2();
}
}
//普通类
class MyTableModel extends AbstractTableModel{
//表头
String columnNames[] = {"姓名","年龄","成绩","头像","作弊"};
//数据
Object rowDatas[][]= {
{"笨笨",new Integer(18),"88",new ImageIcon("upload/touxiang.png"),new Boolean(false)},
{"小丽",new Integer(19),"99",new ImageIcon("upload/touxiang.png"),new Boolean(true)},
{"张三",new Integer(20),"77",new ImageIcon("upload/touxiang.png"),new Boolean(false)},
{"黄蓉",new Integer(16),"65",new ImageIcon("upload/touxiang.png"),new Boolean(false)}
};
//返回行数
@Override
public int getRowCount() {
return rowDatas.length;
}
//返回列数
@Override
public int getColumnCount() {
return columnNames.length;
}
//获取单元格的数据
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
System.out.println("该单元的值为:"+rowDatas[rowIndex][columnIndex]);
return rowDatas[rowIndex][columnIndex];
}
//获取列名
@Override
public String getColumnName(int column) {
return columnNames[column];
}
//获取某列对应的数据类型
@Override
public Class getColumnClass(int columnIndex) {
return getValueAt(0, columnIndex).getClass();
}
//设置某列是否可以修改,返回true可以修改,返回false不能修改
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
if(columnIndex<2) {
return false;
}
return true;
}
//修改了单元格的数据就保存到数组中
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
rowDatas[rowIndex][columnIndex] = aValue;
fireTableCellUpdated(rowIndex, columnIndex);
}
}