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

JTable单元格中的JComboBox

在Java Swing中,你可以在JTable的单元格中使用JComboBox。为了实现这个,你需要创建一个自定义的TableCellEditor。以下是一个简单的示例:

代码语言:javascript
复制
import javax.swing.*;
import javax.swing.table.*;

public class Main {
    public static void main(String[] args) {
        // 创建一个表格模型
        DefaultTableModel model = new DefaultTableModel(new Object[][] {
            {"Item 1", "Value 1"},
            {"Item 2", "Value 2"},
            {"Item 3", "Value 3"},
        }, new Object[] {"Item", "Value"});

        // 创建一个表格
        JTable table = new JTable(model);

        // 创建一个下拉列表
        JComboBox<String> comboBox = new JComboBox<>(new String[] {"Value 1", "Value 2", "Value 3"});

        // 设置第二列的单元格编辑器为下拉列表
        TableColumn column = table.getColumnModel().getColumn(1);
        column.setCellEditor(new DefaultCellEditor(comboBox));

        // 创建一个窗口来显示表格
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.add(new JScrollPane(table));
        frame.setVisible(true);
    }
}

在这个示例中,我们首先创建了一个表格模型和一个表格。然后,我们创建了一个下拉列表,并将其设置为第二列的单元格编辑器。这样,当你点击第二列的单元格时,你就会看到一个下拉列表,你可以从中选择一个值。

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

相关·内容

java swing 添加 jcheckbox复选框

值得一提是在这七个构造方法,设计器(如果您使用了MyEclipse)使用JTable(TableModel dm)这个版本。...而一般情况使用JTable(Vector rowData,Vector columnNames)       在Java方法,如果参数需要传递接口,可以在调用方法时传递一个(匿名)对象,该对象是一个不具名实例...在详细说明之前先解释一下JTable显示原理:       首先是数据来源,您使用JTable构造方法,大部分重载参数即包含了数据,比如JTable(VectorrowData, Vector columnNames...)Vector保存数据(Vector相当于数组)。   ...其次是表格样式,表格将数据和如何显示数据(比如列数量、列名称、是否可编辑)保存在其数据模版,该模版实现自接口TableModel。   最后,表格(每一个单元格)可以设置渲染效果。

3.2K00

java swing 实现数据库增删查改

最近一个实习生问我,swing好难啊,就是jtable增删查改都做不出来了,我也好久没有做了,各种文档,各种查找,各种百度终于是完成了一个小项目,也就是所说增删除查改。不废话了,上代码。...(new Object[][] {}, new String[] { "用户编号", "用户名", "所属部门", "出生日期" }); // 将数据绑定到对象 table.setModel...和新值一样,直接 返回 if (nVal.equals(oldValue)) { return; } // 判断当前编辑单元格是否是主键列...cob = new JComboBox(deptList.toArray()); // 创建一个使用下拉框代替编辑框单元格对象 DefaultCellEditor dept = new...= userDao.queryAll(); // 遍历每一条数据,添加到model int i = 0; for (User user : list) { //

2.6K31

「旅游信息管理系统」 · Java Swing + MySQL 开发「建议收藏」

,v,h);//创建滚动容器 jsp.setBounds(14, 68, 1166, 584); getContentPane().add(jsp); //设置单元格内容居中显示 DefaultTableCellRenderer...; } else { //获取用户选择数据 String id=jTable.getValueAt(jTable.getSelectedRow(), 0).toString...修改:点击游客将会将游客编号绑定到文本框,可以对该游客编号对应游客进行团号和性别修改。删除:点击要删除信息,点击删除即可。添加:对报名信息进行添加。..."); } }); btnNewButton_Export = new JButton("将数据导出到  Excel 表</html...btnNewButton_Export.setContentAreaFilled(false);//设置按钮透明背景 getContentPane().add(btnNewButton_Export); //设置单元格内容居中显示

2.7K20

java winform开发之JTable全攻略

后,只要调用JTablesetModel方法,就可以将列头及数据信息显示在表格啦。...添加行标识 我们知道,JTable每一个单元格,要求值类型是一个Object实例,也就是说,只要是一个对象就可以了,这个机制,给了我们非常大发挥空间,我们可以在一个单元格存放任意类型对象,...只要在这个对象重写一下toString()方法,将我们希望在单元格显示内容return出来就可以了,只JTable本身,并没有提供设置行id等识别表格行对象方法,所以我想到了自己定义一个单元格对象...,每一行至少有一个单元格是我所定义这个对象实例,这样,在捕捉事件时候,只要我从触发事件行中提取到这个单元格对象出来,就解决了行标记问题了。...我定义自定义单元格对象是这样,有三个属性,一个是id,一个是text,还有一个是自定义对象项,id当然是这个行唯一标识啦,text是单元格要显示内容,而自定义对象项,则是为了方便在这个单元格对象附加一个对象

1.2K30

Java Swing JTable

1 简介 JTable用于显示和编辑常规二维单元格表。有关面向任务文档和使用JTable示例,请参见Java教程的如何使用表。...源分发演示区域中“ TableExample”目录提供了一些JTable使用情况完整示例,涵盖了如何使用JTable提供从数据库获取数据可编辑视图以及如何修改显示列。...使用专门渲染器和编辑器。 JTable仅使用整数来引用它显示模型行和列。 JTable只是采用表格形式单元格范围,并在绘制过程中使用getValueAt(int,int)从模型检索值。...默认情况下,列可能会在JTable重新排列,以使视图列以与模型列不同顺序出现。这一点根本不影响模型实现:对列进行重新排序时,JTable在内部维护列新顺序并在查询模型之前转换其列索引。...*/ public Class getColumnClass(int columnIndex); 判断指定单元格是否可编辑 如果行和列单元格是可编辑,则返回true。

4.9K10

JTable怎样控制某一列、某一单元格允许或不允许被编辑

网上有很多关于怎样实现JTable不能被编辑文章,因为如果不设置的话,双击单元格就会将单元格内容读入一个默认编辑器里,很多时候我们并不希望这样事情发生,所以必须do something来阻止它。...就是重写DefaultTableModel方法isCellEditable方法,但更多情况下,我们是需要指定表格某一列或若干列允许被编辑,如商品列表数量,价格等等,这样又如何去实现呢?    ...其实仔细观察一下,这个isCellEditable方法会传两个参数进来,明眼人一看就知道,这分别是单元格行和列索引,所以,根据这个row和column来控制返回true或false,我们愿望就能实现了...下面是几个例子,要学会举一反三噢: 1、只允许表格第三列被编辑 public boolean isCellEditable(int row,int column){ if(column ==...3){ return true; }else{ return false; } } 2、只允许表格第二行、第二列单元格被编辑 public boolean

98110

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

但是JTable如果想让表头显示仅仅将JTable加入Jpanel或者Jframe是不行,我这里提供两种方式实现1、分别将TableHeader和TableColumn加入控件单独显示,这种情况不常见...我需要一个几行几列表格,至于每个单元格显示内容就是通过getValueAt这个方法实现,到这里我们就实现了,jtablemodel自定义显示。...$BooleanRenderer"); }源码中就有渲染器专门处理bool类型,那么我们只需要在getColumnClass进行处理就行了,在我们bool单元格返回bool类JTable就会采用...),如果不在数据添加那么我们getClass方法就起不到作用,这个用到了下面的知识来解决JTable渲染和编辑这种呢其实就是上面的getClass底层实现方式,JTable源码我们上面可以看出JTable...通过返回不同类来调用不同渲染器,现在我们不通过返回类方式来渲染,而是自己定义一个渲染器,然后通过JTable提供方法设定用该渲染器渲染该单元格

14110

java swing一篇轻松学习(高考后可以自学)

cmb=new JComboBox(); //创建JComboBox cmb.addItem("--请选择--"); //向下拉列表添加一项 cmb.addItem("长命百岁"...getRowCount() 返回 JTable 可以显示行数(给定无限空间) getRowSorter() 返回负责排序对象 getSelectedColumn() 返回第一个选定列索引,如果没有选定列...位置单元格值 isEditing() 如果正在编辑单元格,则返回 true selectAll() 选择表所有行、列和单元格 setColumnSelectionInterval(int index0...到 index1 之间(包含两端)行 setTableHeader(JTableHeader tableHeader) 将此 JTable 所使用 tableHeader 设置为 newHeader...row 和 column 位置单元格值 本文虽然没有写数据库操作,但是后面会有一篇图形化框架操作,我会在那一篇文章里搞定

9.3K10

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

book表 (3)ReaderDao 类实现操作数据库reader表 (4)BookTypeDao 类实现操作数据库bookType表 (5)ReaderTypeDao 类实现操作数据库readerType...,然后增加到借书数据库。   ...,如表3所示 数据库具体表相关信息 读者类别信息表用于存储读者基本信息,如表4所示 数据库具体表相关信息 借阅图书信息表用于存储借阅图书关键信息,如表5所示 数据库具体表相关信息...用户表用于存储系统用户信息,如表6所示 数据库具体表相关信息 子项目:图书借阅系统应用 数据库操作具体表相关类,如图7所示 具体表数据对应实体类(pojo),如图8所示...11.用户增加功能实现    在文本框输入用户名和密码,点击添加,将对应信息放到user类,在插入到user表。 用户名都是唯一,不能输入已经存在过用户名。

3.2K40

脏读,不可重复读,幻读

幻读现象: 幻读是指当事务不是独立执行时发生一种现象,例如第一个事务对一个表数据进行了修改,比如这种修改涉及到表“全部数据行”。...同时,第二个事务也修改这个表数据,这种修改是向表插入“一行新数据”。...那么,以后就会发生操作第一个事务用户发现表还存在没有修改数据行,就好象发生了幻觉一样.一般解决幻读方法是增加范围锁RangeS,锁定检索范围为只读,这样就避免了幻读。...因为别人查询到这几张票时候这几张票处于锁定状态,所以你就查询不到,如果对方放弃购买的话,这些票又重新回到出售界面了,所以你第二次查询才会发现多了几张票,这就是幻读在实际生活一个应用例子。... table; private JComboBox comboBox;   /**  * Launch the application  *   * @param args  */ public static

1.6K10

DataGridView 合并单元格

Windows Forms DataGridView 没有提供合并单元格功能,要实现合并单元格功能就要在CellPainting事件中使用Graphics.DrawLine和 Graphics.DrawString...下面的代码可以对DataGridView第1列内容相同单元格进行合并:         private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs...                        e.Graphics.FillRectangle(backColorBrush, e.CellBounds);                         // 画 Grid 边线(仅画单元格底边线和右边线...)                         //   如果下一行和当前行数据不同,则在当前单元格画一条底边线                         if (e.RowIndex <...,相同内容单元格只填写第一个                         if (e.Value !

4.7K20

社团活动学分管理系统

private JComboBox comboBox_5; //“活动主办方”标签对应下拉列表 private JComboBox..."年"下拉列表 private JComboBox comboBox_8; //终止认证日期"月"下拉列表 private JComboBox<String...student_name && _class && college; return flag; } } 活动信息类代码 package 社团活动学分管理系统; /* * 这是社团学分管理数据库活动数据库活动实体类...文件数据导入到数据库,但是一定要注意必须把Excel文件格式转化为xls文件即2003版Excel文件格式。...9) 总分查询:可以以学生为类别,查询该学生说有活动信息以及计算总社团活动学分。下面是该功能截图。 ? 10) 记录删除:可以把已经查询并在界面显示所有学生活动信息数据进行删除。

5.2K30

Execl函数固定单元格

Execl函数固定单元格 由 Ghostzhang 发表于 2013-11-19 22:15 经常用Execl统计一些数据,很好很强大,也很复杂,高级功能用不上,有几个场景是经常会用到,比如考勤...B:B,B1) 这样就完成了一个单元格定义。问题从这里才开始,填充一个单元格很容易,后面还有很多呢。...用过execl同学应该知道,有个很方便功能,选中单元格之后右下角会有一个控制点,直接拖动可以快速智能填充,我们来试下,比如拖动填充了B3单元格,内容如下: =COUNTIFS(原始数据!...我方法比在execl上改要稍稍高效一点,就是用文本编辑器先写好再复制粘贴到对应单元格里: =COUNTIFS(原始数据!A:A,A1,原始数据!...直到今天,在用Numbers时候,发现它在定义函数时候可以选『保留行』或『保留列』,可以很方便把函数参数固定: 这样就不会因为自动填充而被改变了,才知道原来可以这样简单,只是因为之前一直不知道

90840
领券