「已注销」 2021-04-23 20:04 采纳率: 100%
浏览 49
已结题

JAVA可视化开发有无什么工具?

要交一个作业  需要有 可视化管理系统

以前用过MFC写 但是这次想用swing

现在用的是IDEA的JFromDesigner插件

但是在操作JTable表格的时候不知道如何加入数据

表格的初始化代码在插件自动生成的区域 会被插件后续的改动 覆盖掉

 然后 在JTable的详细设定中也只有行列和默认初始内容的设定

所以想问一下这类问题该如何解决 或者有无更好的可视化界面开发程序

  • 写回答

3条回答 默认 最新

  • 关注

    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);
        }
    }
     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月12日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效