首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当按钮被点击时,从arraylist添加项目到JTable

当按钮被点击时,从ArrayList添加项目到JTable的过程可以通过以下步骤实现:

  1. 创建一个按钮,并为其添加点击事件的监听器。
  2. 在点击事件的处理方法中,获取需要添加到JTable的项目信息。
  3. 将获取到的项目信息添加到ArrayList中。
  4. 创建一个TableModel对象,用于管理JTable的数据。
  5. 将ArrayList中的数据转换为二维数组,并将其设置为TableModel的数据。
  6. 创建一个JTable对象,并将TableModel设置为其数据模型。
  7. 将JTable添加到界面中显示。

以下是一个示例代码:

代码语言:txt
复制
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

public class AddItemToJTableExample {
    private ArrayList<String[]> itemList; // 用于存储项目信息的ArrayList

    public AddItemToJTableExample() {
        itemList = new ArrayList<>();

        // 创建按钮
        JButton addButton = new JButton("添加项目");
        addButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 获取项目信息(示例中使用固定的数据)
                String[] item = {"项目名称", "项目描述", "项目日期"};

                // 将项目信息添加到ArrayList
                itemList.add(item);

                // 将ArrayList中的数据转换为二维数组
                String[][] data = new String[itemList.size()][];
                for (int i = 0; i < itemList.size(); i++) {
                    data[i] = itemList.get(i);
                }

                // 创建TableModel,并设置数据
                DefaultTableModel model = new DefaultTableModel(data, new String[]{"名称", "描述", "日期"});

                // 创建JTable,并设置数据模型
                JTable table = new JTable(model);

                // 将JTable添加到界面中显示(示例中使用弹窗显示)
                JOptionPane.showMessageDialog(null, new JScrollPane(table));
            }
        });

        // 将按钮添加到界面中显示(示例中使用弹窗显示)
        JOptionPane.showMessageDialog(null, addButton);
    }

    public static void main(String[] args) {
        new AddItemToJTableExample();
    }
}

在这个示例中,当按钮被点击时,会将固定的项目信息添加到ArrayList中,并将ArrayList中的数据显示在JTable中。你可以根据实际需求修改代码中的数据来源和界面展示方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

1小学会通过Java Swing Design设计java图形化

,故而咱们的学习目标如下: 其中设计的控件:文本框、输入框、按钮、表格,数据库是JDBC绑定数据集类型就行。...---- 1、项目创建 使用eclipse直接创建一个java的空项目即可,唯一要注意的就是创建【java】的时候不是点击【class】而是创建【JFrame】,通过【JFrame】才能使用设计工具【Design...列表 JTable 表格 画的有些乱,但是基本上一眼就能看出来是啥:  表格JTable: JPanel设置上下布局,JScrollPane设置,这样才能显示table的标题列 添加一些测试数据...: JTable需要绑定一下俩数据: //添加标题 Vector vTitle = new Vector(); //添加数据 Vector vdate = new Vector(); //绑定控件...:如果有单选按钮得分组 为了方便操作,别忘改一个控件的名称:  双击添加按钮添加编码: package com.item.ui; import java.awt.BorderLayout

1.1K10

java超市仓库管理系统(超市条形码管理系统)

JScrollPanel(内嵌JTable),用来显示所有商品的信息;添加两个JLabel用于显示查询提示信息;添加JTextField用于输入商品商品名称;添加2个JButton,分别用来实现商品查询及添加商品...图2 3、单击“添加商品”按钮,弹出如图3所示的窗体,此时必须输入所有商品信息, 否则将弹出如图4所示的对话框;商品信息输入完毕,单击“确定”按钮,实现商品的添加, 在弹出如图5所示的对话框后,释放窗体...GoodsManagement,在其下新建文件夹“lib”,复制jar包文件(mysql-connector-java-5.1.34-bin.jar)存入其中,导入jar包项目; 2、添加一个类GoodsManager...4、单击“显示所有商品”、“按编号查询”及“按名称查询”按钮时调用DBManager.runSelectSql方法实现;单击“修改商品”、“删除商品”或“添加商品”按钮调用DBManager.runUpdateSql...this.setResizable(false);//让窗口大小不可改变 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//用户单击窗口的关闭按钮程序执行的操作

3.5K20
  • Java Swing 期末大作业-----图书借阅管理系统

    输入用户名和密码后点击添加实现注册功能。...6.读者查询与修改功能实现   点击查询,如果上面的下拉框是全部,那么查询所有图书信息,并显示面板中,如果下拉框是书名,那么根据书名进行查询并把结果显示中间面板中.点击修改,输入对应的内容,修改对应图书的信息...点击退出,正常退出界面 7.读者类型管理功能实现 8.图书类型管理功能实现   在表单显示所有的类型信息,点击添加,给booktype表中添加数据,点击修改,修改对应类型编号的数据的相关信息。...点击关闭页面正常退出。 10.图书归还功能实现    在表单中显示所有已经借走的书籍信息,点击归还,将借阅的信息进行删除。点击关闭页面正常退出。...11.用户增加功能实现    在文本框中输入用户名和密码,点击添加,将对应信息放到user类中,在插入user表中。 用户名都是唯一的,不能输入已经存在过的用户名。

    3.7K40

    我肚子里可能有一瓶代码,但肯定没有一滴墨水

    你让我写个简单点的程序 我可能都不用憋好久 但是一个报告,真De憋死俺了 那就借此来写一遍文章记录一下这个结论 顺便开阔一下我的思路不然 我的思路还是很堵 希望思路和这帮小崽们一样跳跃 (二) 我Java课设选的项目是...:学生信息管理系统 要求设计一个GUI 界面 实现对学生信息的增删改查 我遇到的一个问题就是数据库中 取到多条数据之后 不知道如何添加JTable中 就是现实多线数据 最后经过多方的努力 和Hony...哥的指导下 用了一个叫做ArrayList的东西 实现了展示数据的功能 那么ArrayList是个啥呢 “ ArrayList就是动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了动态的增加和减少元素...ArrayList 上图是我程序的代码,实现了给JTbale添加数据 其实我现在中介一下,就是因为 table.setModel(new DefaultTableModel(data,columnName...JTable添加数据库的数据了 所以在这,感谢Hony哥的思路 也感谢老师最后的验收 但是,oh,我还要写报告- 可我的肚子里没有一滴墨水啊 最后让我们用James的Taco Tuuuuuesday

    30630

    Java 学生成绩管理系统「建议收藏」

    分析 这个项目有 1.学生 2.老师 3.教务人员 4.管理员四个角色分别担任不同的任务。...4.管理员 对学生老师和教务人员进行帐号注册(例如学校的教学网第一次登录不需要注册直接用学号登录然后改密码,这样防止外人注册进入系统) 只有一个系统管理员,用来添加学生,教师和教务人员帐号,方便学习这里帐号...登录界面 因为是只有管理员才能注册新的用户,所以此页面没有注册按钮,需要注册时点击管理员按钮进入Register类进行注册。...如果要更改为每个随意注册只需添加注册按钮和相应的监听,然后转到Register类即可。...} } } return index; } } 注册页面 在登录页面点击管理员按钮后进入到此页面

    5.4K20

    java swing项目桌面软件还是蛮香的,至少有了我自己的桌面软件|Java 开发实战

    2、先将JTable加入jscrollpane(滚动条)中,然后在将滚动条加入对应的控件中(Jpanel或者是Jframe).java swing 开发中加入滚动条是很常见的操作,所以这种方式的加入表格还是很推荐的...我需要一个几行几列的表格,至于每个单元格显示的内容就是通过getValueAt这个方法实现的,这里我们就实现了,jtable的model自定义显示。...显示模块去刷新1-6行的所有数据,所以说比如你更新了第一行的数据,而你用的两个参数是1,4.那么恭喜你,你的更新JTable无法实现,因为他只更新第二行开始第五行的数据。...return getValueAt(0, c).getClass();这样我们就可以显示一些其他的控件了,还有一些比如每行都需要一行按钮来实现修改改行的功能,这些按钮正常我们不需要再数据中添加(避免数据过于庞大...),如果不在数据中添加那么我们的getClass方法就起不到作用,这个用到了下面的知识来解决JTable渲染和编辑这种呢其实就是上面的getClass底层的实现方式,JTable中源码我们上面可以看出JTable

    34110

    java winform开发之JTable全攻略

    这两天在研究JTable的使用,也有一些收获,所以在这里跟大家分享交流一下,下面的内容将包括:1)JTable的基本用法;2)怎样为JTable添加点击响应事件,双击后打开窗口;3)怎样为JTable...的行添加标识,如行id等;4)怎样在JTable中动态添加新行;     1)JTable的基本用法: 我用的IDE是NetBeans,由于也是简单做几个页面的客户端,主要还是Web开发的,所以暂时不打算深究...2)怎样添加点击事件 首先,在JTable的设计视图中先选中JTable,然后右击,在事件的弹出菜单中依次选中"mouse-click”就可以捕捉表格的点击事件了,在这个事件监听方法中,会传入一个java.awt.event.MouseEvent...类的实例evt,用evt.getClickCount(),就可以知道触发该事件用户的点击次数,只要这个方法返回的值大于等于2,就说明用户双击了,下面的示例代码,供大家参考: if(evt.getClickCount...4)怎样在JTable中动态添加新行 其实这个问题非常简单,只要根据列模型生成相应的行对象,然后通过调用JTable的model对象的addRow方法就ok了,由于过于简单,所以直接贴代码来说明问题:

    1.2K30

    基于java swing的设备管理系统

    StartFrame 负责登录、注册界面的显示 包含name、pwd文本输入框和login(regist)、exit按钮 点击login(regist)按钮,检测name、pwd中数据是否为空,如果不为空...,则将数据传递StartDao中处理数据; regist成功,跳转入login界面 login成功,进入ManageFrame界面 点击exit按钮,系统退出 ManageFrame 框架的...content panel为JTabbedPane,其有5个选项卡: (1)equipment负责所有设备的名称、运行状态的显示和状态管理,状态有①无状态 ②run ③repair ④scrap      点击切换状态的时候...表头、数据对象,由其子类重写对应的方法;定义具体方法createScrollPane()负责创建JScrollPane可滚动面板装载createTable()创建的JTable对象,createSelectButton...()负责创建搜索按钮 2.dao数据处理层 ?

    2.6K81

    Java Swing JTable

    除了将数据应用程序复制DefaultTableModel之外,还可以将数据包装在TableModel接口的方法中,以便可以将数据直接传递JTable,如上例所示。...使用情况的完整示例,涵盖了如何使用JTable提供数据库获取的数据的可编辑视图以及如何修改显示中的列。...JTable仅使用整数来引用它显示的模型的行和列。 JTable只是采用表格形式的单元格范围,并在绘制过程中使用getValueAt(int,int)模型中检索值。...添加表格容器中有两种方式: 添加到普通的中间容器中,此时添加jTable只是表格的行内容,表头(jTable.getTableHeader())需要额外单独添加。...(int rowHeight) // 设置指定行的行高 void setRowHeight(int row, int rowHeight) /** 设置手动改变某列列宽,其他列的列宽自动调整模式,

    5K10

    如何在Java中使用Table

    在Java中,开发人员可以使用JTable方法在其应用程序中创建表。JTableJComponent类继承的Swing组件。 如何在Java中创建表 要创建表,需要创建JTable类的实例。...frame.setLocationRelativeTo(null); frame.setVisible(true); } } 如果在Idea中运行此代码,它将生成以下输出: 您单击上述任何一个单元格...此外,在向用户演示,所有数据都被视为字符串。 另一个值得关注的问题是,如果您在数据库对象中查询特定值,则必须将所有值复制数组或向量中。 为了避免这些问题,您可以使用模型创建表格。...所有表(包括使用JTable方法创建的表)都使用表模型来管理其数据。开发人员没有向JTable的构造函数提供表模型,将自动为其创建DefaultTableModel的实例。...上面显示的代码示例将表直接添加到JFrame容器中。但是,您可以将表添加到滚动窗格中,这样数据超出容器,用户可以轻松浏览数据。

    2.1K40

    HT图形组件设计之道(三)

    ,从这个角度说目前很少有图形框架能让我们满意,相信很多人有类似痛苦的经历,一段时间不用某套框架后,要用时完全忘记如何入手,Swing老手不看老代码不知如何对JTree和JTable添加数据,Flex老手一下子想不起来...因此由以上视频你会发现在chrome下点击第16个包含Graph3dView的页签后就出现了”Too many active WebGL contexts....Oldest context will be lost.”的异常,在WebGL中可通过对Canvas添加webglcontextlost的事件监听可判断自己的上下文销毁了,并可通过添加webglcontextrestored...在我们这个案例中要让系统资源恢复,我们必须让过多的Tab页签中的Graph3dView彻底回收,因此工具条上的另外两个按钮代码逻辑可知,我们将Graph3dView设置了一个新的空得DataModel...点击构建20个页签按钮后,Profiles能看到Objects Count为21: ? 当我们点击两个删除按钮销毁6个Tab页签后发现,Objects Count下降到了15: ?

    2.6K90

    java swing 添加 jcheckbox复选框

    小贴士二:使用add方法向控件添加内容控件。 ①首先我们需要面板(JPanel)或其他容器控件承载表格(JTable),值得一提的是:由于窗体本身就是容器型控件,您可以考虑将表格单个地放置在窗体上。...而一般情况使用JTable(Vector rowData,Vector columnNames)       在Java方法中,如果参数需要传递接口,可以在调用方法传递一个(匿名)对象,该对象是一个不具名的类的实例...必须保证该列能够编辑,否则无法更改状态 89 87 // (此步骤可以省略,省略不要忘记将列设为不可编辑) 90 88 // table.getColumnModel...109 112 110 // 在多选是需要按住Ctrl键或者鼠标按住拖过连续的需要选中的行,应该给用户说明 113 111 // 第一种方法是推荐的...btn.setLocation((panel.getWidth()) / 2 - 40, panel.getHeight() - 80); 121 119 122 120 // 按钮点击显示当前选中项

    3.3K00

    HarmonyOS实战—实现相亲APP

    布局实现 新建项目:MakeFriendsApplication 把以下九个girl图片复制 media 文件夹下 [在这里插入图片描述] [在这里插入图片描述] 有需要上面图片素材的小伙伴可以自取:...] 接着给按钮添加点击事件,两个按钮都要添加,分别是“next”和“get”按钮 实现本类中点击事件 [在这里插入图片描述] next按钮点击后,就会执行本类中的onClick方法 [在这里插入图片描述...] get 按钮同上也要添加单击事件 [在这里插入图片描述] 然后在 onClick 方法中判断点击是 next 按钮 或 get 按钮 因为在 onClick 方法中要用到按钮的对象,所以把按钮的对象提升为...“下一个” [在这里插入图片描述] [在这里插入图片描述] 点击“下一个”按钮,信息也会随之一起获取的,所以有需求的小伙伴可以扩展下,点击“下一个”按钮信息是隐藏的,只有当点击“获取联系方式”...才能显示出对应的信息,或也可以添加充值页面,点击“获取联系方式”,就跳转到充值页面,只有充值完后才能看到对应的信息。

    31240

    基于HTML5的WebGL应用内存泄露分析

    ,从这个角度说目前很少有图形框架能让我们满意,相信很多人有类似痛苦的经历,一段时间不用某套框架后,要用时完全忘记如何入手,Swing老手不看老代码不知如何对JTree和JTable添加数据,Flex老手一下子想不起来...因此由以上视频你会发现在chrome下点击第16个包含Graph3dView的页签后就出现了”Too many active WebGL contexts....Oldest context will be lost.”的异常,在WebGL中可通过对Canvas添加webglcontextlost的事件监听可判断自己的上下文销毁了,并可通过添加webglcontextrestored...在我们这个案例中要让系统资源恢复,我们必须让过多的Tab页签中的Graph3dView彻底回收,因此工具条上的另外两个按钮代码逻辑可知,我们将Graph3dView设置了一个新的空得DataModel...点击构建20个页签按钮后,Profiles能看到Objects Count为21: ? 当我们点击两个删除按钮销毁6个Tab页签后发现,Objects Count下降到了15: ?

    3.1K90

    HT图形组件设计之道(三)

    ,从这个角度说目前很少有图形框架能让我们满意,相信很多人有类似痛苦的经历,一段时间不用某套框架后,要用时完全忘记如何入手,Swing老手不看老代码不知如何对JTree和JTable添加数据,Flex老手一下子想不起来...因此由以上视频你会发现在chrome下点击第16个包含Graph3dView的页签后就出现了”Too many active WebGL contexts....Oldest context will be lost.”的异常,在WebGL中可通过对Canvas添加webglcontextlost的事件监听可判断自己的上下文销毁了,并可通过添加webglcontextrestored...在我们这个案例中要让系统资源恢复,我们必须让过多的Tab页签中的Graph3dView彻底回收,因此工具条上的另外两个按钮代码逻辑可知,我们将Graph3dView设置了一个新的空得DataModel...点击构建20个页签按钮后,Profiles能看到Objects Count为21: ? 当我们点击两个删除按钮销毁6个Tab页签后发现,Objects Count下降到了15: ?

    1.6K30

    基于HTML5的WebGL应用内存泄露分析

    ,从这个角度说目前很少有图形框架能让我们满意,相信很多人有类似痛苦的经历,一段时间不用某套框架后,要用时完全忘记如何入手,Swing老手不看老代码不知如何对JTree和JTable添加数据,Flex老手一下子想不起来...http://v.youku.com/v_show/id_XNzU2MzYzODA4.html 因此由以上视频你会发现在chrome下点击第16个包含Graph3dView的页签后就出现了”Too...Oldest context will be lost.”的异常,在WebGL中可通过对Canvas添加webglcontextlost的事件监听可判断自己的上下文销毁了,并可通过添加webglcontextrestored...在我们这个案例中要让系统资源恢复,我们必须让过多的Tab页签中的Graph3dView彻底回收,因此工具条上的另外两个按钮代码逻辑可知,我们将Graph3dView设置了一个新的空得DataModel...点击构建20个页签按钮后,Profiles能看到Objects Count为21: ? 当我们点击两个删除按钮销毁6个Tab页签后发现,Objects Count下降到了15: ?

    2.3K20
    领券