首页 > 编程语言 >Java Swing JTable

Java Swing JTable

时间:2024-12-08 20:43:55浏览次数:9  
标签:jFrame Java Swing JTable 窗体 table new false row

    
        try
        {
            BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.osLookAndFeelDecorated;
            //UIManager.put("RootPane.setupButtonVisible", false);
            org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
            
        }
        catch(Exception e)
        {
            //TODO exception
        }
        
        // 创建窗体对象
        JFrame jFrame =new JFrame();
        // 设置窗体大小
        jFrame.setSize(800, 500);
        // 设置窗体全屏展示
        //jFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        // 设置窗体显示位置
        //jFrame.setLocation(100,200);
        // 设置窗体显示正中间
        jFrame.setLocationRelativeTo(null);
        // 设置窗体标题
        jFrame.setTitle("窗体标题");
        // 设置窗体不可全屏显示
        //jFrame.setResizable(false);
        // 设置窗体关闭后退出程序
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置此窗口是否应该始终位于其他窗口上方
        jFrame.setAlwaysOnTop(true);
        // 设置窗体图标
        jFrame.setIconImage(new ImageIcon(HelloWorld.class.getResource("/images/book.png")).getImage());
        

        
        JPanel jPanel =new JPanel(null);
        
        
        Object[][] data=new Object[][] {
            {new Boolean(false),"1","zhangshan","24","男"},
            {new Boolean(false),"2","lisi","25","女"},
            {new Boolean(false),"3","lisi","25","女"},
            {new Boolean(false),"4","lisi","25","女"},
            {new Boolean(false),"5","lisi","25","女"},
            {new Boolean(false),"6","lisi","25","女"},
            {new Boolean(false),"7","lisi","25","女"}
        };    
        Object[] column=new Object[] {"请选择","序号","姓名","年龄","性别"};
        
        DefaultTableModel model =new DefaultTableModel(data,column) {
            // 重写getColumnClass方法的目的是为了在第一列添加复选框,如果不需要可以不重写
            @Override
            public Class<?> getColumnClass(int columnIndex) {
                if(columnIndex==0) {
                    return Boolean.class;
                }else {
                    return Object.class;
                }
            }
            
        };
        
        // 创建表格,并添加数据,并设置单元格不可编辑
        JTable table =new JTable(model) {
            public boolean isCellEditable(int row,int column) {
                if(column==0) {
                    return true;
                }
                return false;
            }
        };
        
        // 设置Tbody的字体
        table.setFont(new Font("微软雅黑",Font.PLAIN,15));
        // 设置Tbody的td高度
        table.setRowHeight(40);
        // 设置Thead的字体
        table.getTableHeader().setFont(new Font("微软雅黑",Font.PLAIN,15));
        // 设置某个列的宽度
        table.getColumnModel().getColumn(2).setPreferredWidth(200);
        // 设置表格一次只能选中一行数据
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        
        
        // 添加数据
        model.addRow(new Object[] {new Boolean(false),"8","JACK","22","男"});
        
        
        
        
        // 数据回显 修改数据    
        table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
            
            @Override
            public void valueChanged(ListSelectionEvent e) {
                // 只监听变化事件
                if(e.getValueIsAdjusting()==true) {
                    // 获取被选中的行返回当前行号
                    int row =table.getSelectedRow();
                    // 获取每个单元格的值
                    String id=(String) table.getValueAt(row, 1);
                    String name=(String) table.getValueAt(row, 2);
                    String age=(String) table.getValueAt(row, 3);
                    String gender=(String) table.getValueAt(row, 4);
                    System.out.println(id +',' +name +","+age +"," +gender);
                    // 修改数据
                    table.setValueAt(id, row, 1);
                    table.setValueAt(name, row, 2);
                    table.setValueAt(age, row, 3);
                    table.setValueAt(gender, row, 4);
                    
                }
                
                
            }
        });
        
        
        // 删除数据
        JButton deleteBtn =new JButton("delete");
        
        deleteBtn.addActionListener(new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                
                boolean selecton =false;
                for(int i=0;i<model.getRowCount();i++) {
                    if(model.getValueAt(i, 0).equals(Boolean.TRUE)) {
                        selecton=true;
                    }
                }
                if(selecton) {
                    for(int i=model.getColumnCount()-1;i>=0;i--) {
                        if(model.getValueAt(i, 0).equals(Boolean.TRUE)) {
                            //删除数据
                            model.removeRow(i);
                        }
                    }
                }else {
                    System.out.println("请选择");
                }
                
                
                
            }
        });
        
        
        
        
        
        JScrollPane scrollPane =new JScrollPane(table);
        scrollPane.setSize(800, 200);
        scrollPane.setLocation(10, 10);

        
        
        
        
        
        jPanel.add(scrollPane);
        jFrame.setContentPane(jPanel);
        // 设置窗体可见
        jFrame.setVisible(true);
            

 

标签:jFrame,Java,Swing,JTable,窗体,table,new,false,row
From: https://www.cnblogs.com/liangqingyun/p/18593793

相关文章

  • Java基础 —— 泛型
    泛型 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。理解 为了可以进一步理解泛型,我们先来看一个问题需求: 编写一个程序,在ArrayList中添加三个对象,类中要有name、age属性,输出对象的name、age属性首先,我们先用传统方法进行编写packag......
  • Java 进阶指南
    Java作为一种广泛应用的编程语言,在掌握了基础语法和面向对象概念后,进阶学习将帮助开发者构建更强大、高效和可维护的应用程序。一、多线程编程多线程允许程序在同一时间内执行多个任务,提高程序的运行效率和响应性。在Java中,通过Thread类或实现Runnable接口来创建线程......
  • Java毕设项目案例实战II基于Java+Spring Boot+MySQL的玩具租赁系统设计与实现(开发文档
    目录一、前言二、技术介绍三、系统实现四、核心代码五、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。一、前言在环保意识日益增强的今天,玩具租赁作为一种绿色、经济的消费方式,逐渐受到家长和孩......
  • java + mysql + 38_在线网络教学平台的设计与实现 +(完整源码 + 说明文档 + 演示视频)
     ......
  • springboot毕设基于java的宠物店管理系统源码+论文+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着人们生活水平的提高,宠物在人类生活中扮演着越来越重要的角色,宠物行业得到了飞速的发展 3。然而,在宠物服务领域,传统的人工管理方式存在诸多......
  • springboot毕设基于Java的大学生电子产品维修系统的设计与实现源码+论文+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着电子产品在大学生群体中的广泛使用,其维修需求也日益增长。大学生作为电子产品的庞大消费群体,他们对电子产品的依赖程度很高,从手机、电脑到各......
  • 【Java Web】Tomcat 快速入门
    通常,为了让Java开发的应用程序(app)能够在服务器上正常运行,必须安装Java运行时环境(JRE)。JRE主要支持JavaSE,而如果要运行JavaEE应用,则需要更多的支持,比如依赖于服务器软件,Tomcat就是其中一种常用的服务器。有了Tomcat之后,由于它本身也是用Java实现的,因此同样需......
  • 【老白学 Java】对象的前世今生(二)
    对象的前世今生(二)文章来源:《HeadFirstJava》修炼感悟。还记得「对象的起源」一文中关于Object的描述吗?每个类都间接继承自原始对象Object,所以创建对象时会包含自己的和所有继承的元素,需要为它们提供额外的存储空间。这个过程并不是风平浪静的,其中构造器发生了一些......
  • 前端JavaScript(三)---JS中数组的使用
    1、JS数组创建的四种语法<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title><script>/*第一种......
  • Java 与 XML:基础入门全解析
    在Java编程的世界里,XML(可扩展标记语言)扮演着极为重要的角色。它广泛应用于数据存储、配置文件管理、数据交换等诸多方面。今天,就让我们一起深入探究Java基础XML的奥秘。一、XML是什么?XML是一种标记语言,类似于HTML,但它更加灵活和可扩展。XML的主要目的是存储和传输......