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

在不先单击的情况下获取要在JTable中显示的JComboBox

,可以通过自定义TableCellRenderer来实现。

首先,创建一个自定义的TableCellRenderer类,继承DefaultTableCellRenderer,并重写getTableCellRendererComponent方法。在该方法中,根据需要在JTable中显示的数据类型,返回相应的组件,这里是JComboBox。

代码语言:java
复制
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.*;

public class ComboBoxTableCellRenderer extends DefaultTableCellRenderer {
    private JComboBox comboBox;

    public ComboBoxTableCellRenderer(JComboBox comboBox) {
        this.comboBox = comboBox;
    }

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        comboBox.setSelectedItem(value);
        return comboBox;
    }
}

然后,在创建JTable时,将需要显示JComboBox的列设置为使用自定义的TableCellRenderer。

代码语言:java
复制
JTable table = new JTable(data, columnNames);
TableColumn comboBoxColumn = table.getColumnModel().getColumn(columnIndex);
comboBoxColumn.setCellRenderer(new ComboBoxTableCellRenderer(comboBox));

其中,data是JTable的数据模型,columnNames是列名数组,columnIndex是需要显示JComboBox的列的索引。

这样,在JTable中,对应的列将以JComboBox的形式显示数据,而不需要先单击。

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

相关·内容

图书管理系统代码 4SearchFrame (…

“分类”文件夹下各个具体分类文件夹 comBoBox= new JComboBox(file_class); northPanel1.add(comBoBox,BorderLayout.EAST...FileInputStream(file_book_info); ObjectInputStream obo = new ObjectInputStream(fr); int n = 0;//加入变量n 目的是考虑到搜索出来同一个作者多本书情况下...int m = Integer.parseInt(textField.getText()); book_search =(Book)obo.readObject();//先读取第一个对象 // 如果文本框输入文字出现在某个对象执行以下操作...=null);} //当没有检索到书时候显示结果 if(!exist){ JLabel label_result = new JLabel("没有检索到该书!!")...; private  JComboBox comBoBox; private JTextField textField ; private JTable  table_search ; private

1.2K20

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

) { super("旅游管理信息系统"); this.setBounds(0, 0, 1200, 700); this.setLocationRelativeTo(null);//让窗口屏幕中间显示...让窗口大小不可改变 getContentPane().setLayout(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//用户单击窗口关闭按钮时程序执行操作...super.setTitle("系统登录"); this.setBounds(0, 0, 700, 550);//设置大小 this.setLocationRelativeTo(null);//让窗口屏幕中间显示...; } else { //获取用户选择数据 String id=jTable.getValueAt(jTable.getSelectedRow(), 0).toString...修改:点击游客将会将游客编号绑定到文本框,可以对该游客编号对应游客进行团号和性别修改。删除:点击要删除信息,点击删除即可。添加:对报名信息进行添加。

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

    如果是第一次来借书,那么必须要在系统创建读者信息, 根据读者id进行借阅书籍,所以需要一个读者信息增加功能。系统管理员给长期不借阅书籍读者注销读者用户,需要读者信息删除功能。...点击退出,正常退出界面 7.读者类型管理功能实现 8.图书类型管理功能实现   表单显示所有的类型信息,点击添加,给booktype表添加数据,点击修改,修改对应类型编号数据相关信息。...点击删除,删除指定类型编号图书类型信息,点击退出,正常退出界面。 9.图书借阅功能实现    表单显示所有已经被借走书籍信息,点击借阅,将借阅信息进行增加到bookBorrow。...10.图书归还功能实现    表单显示所有已经被借走书籍信息,点击归还,将借阅信息进行删除。点击关闭页面正常退出。...11.用户增加功能实现    文本框输入用户名和密码,点击添加,将对应信息放到user类插入到user表。 用户名都是唯一,不能输入已经存在过用户名。

    3.7K40

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

    添加到组件 int getIconTextGap() 返回此标签显示文本和图标之间间隔量 int getHorizontalTextPosition() 返回 JLabel 文本相对其图像水平位置...void removeAllItems() 从下拉列表框删除所有项 int getItemCount() 返回下拉列表框项数 Object getItemAt(int index) 获取指定索引列表项...cmb=new JComboBox(); //创建JComboBox cmb.addItem("--请选择--"); //向下拉列表添加一项 cmb.addItem("长命百岁"...list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); scrollPane.setViewportView(list); //滚动面板显示列表...getRowCount() 返回 JTable 可以显示行数(给定无限空间) getRowSorter() 返回负责排序对象 getSelectedColumn() 返回第一个选定列索引,如果没有选定

    9.4K10

    java winform开发之JTable全攻略

    列表在任何一门开发语言中都占有非常重要地位,.Net中有GridView,extjs中有GridPanel。。。,而在java Swing,它名字叫JTable。...后,只要调用JTablesetModel方法,就可以将列头及数据信息显示表格啦。...2)怎样添加行点击事件 首先,JTable设计视图中先选中JTable,然后右击,事件弹出菜单依次选中"mouse-click”就可以捕捉表格点击事件了,在这个事件监听方法,会传入一个java.awt.event.MouseEvent...只要在这个对象重写一下toString()方法,将我们希望单元格显示内容return出来就可以了,只JTable本身,并没有提供设置行id等识别表格行对象方法,所以我想到了自己定义一个单元格对象...,起码,大部分情况下是需要对行标识进行比对,看是否存在关键字相同一行再作处理,像我所做商品添加操作,如果请求新添加商品项已经存在于表格,那么事实上只需要将表格相应商品行数量加一就可以了,如果之前并没存在该商品项情况下

    1.2K30

    【DB笔试面试849】Oracle没有配置ORACLE_HOME环境变量情况下,如何获取ORACLE_HOME目录?

    ♣ 问题 Oracle没有配置ORACLE_HOME环境变量情况下,如何快速获取数据库软件ORACLE_HOME目录?...♣ 答案 若配置了ORACLE_HOME环境变量,则可以通过“echo $ORACLE_HOME”来直接获取,如下所示: [oracle@edsir4p1-PROD2 ~]$ echo $ORACLE_HOME...sqlplus -v SQL*Plus: Release 11.2.0.1.0 Production 若没有配置ORACLE_HOME环境变量,则可以通过“more /etc/oratab”来直接获取...11.2.0/dbhome_1:N PROD2:/u01/app/oracle/product/11.2.0/dbhome_1:N 若数据库已启动监听程序,则可以通过“ps -ef|grep tns”来直接获取...,则可以通过pmap命令来查看ORACLE_HOME路径,pmap提供了进程内存映射,用于显示一个或多个进程内存状态。

    2K50

    java swing 添加 jcheckbox复选框

    运行后,窗体屏幕左上角显现并且是最小化形式。那么关于设置窗体显示就不再赘述了,值得注意是窗体布局必须设置。...值得一提是在这七个构造方法,设计器(如果您使用了MyEclipse)使用JTable(TableModel dm)这个版本。...而一般情况使用JTable(Vector rowData,Vector columnNames)       Java方法,如果参数需要传递接口,可以调用方法时传递一个(匿名)对象,该对象是一个不具名实例...详细说明之前先解释一下JTable显示原理:       首先是数据来源,您使用JTable构造方法,大部分重载参数即包含了数据,比如JTable(VectorrowData, Vector columnNames...(即显示数据组建--或控件) 67 67 * 可以为JCheckBox JComboBox JTextArea 等 68 68 * @see

    3.3K00

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

    ,要求如下: 1、商品管理页面布局,添加一个JScrollPanel(内嵌JTable),用来显示所有商品信息;添加两个JLabel用于显示查询提示信息;添加JTextField用于输入商品商品名称;...图1 2、“商品名称”对应JTextField输入商品名称,单击“查询”:如果存在该商品,则显示如图2所示窗体;若输入名称不存在,则弹出“没找到该商品!”对话框。...图2 3、单击“添加商品”按钮,弹出如图3所示窗体,此时必须输入所有商品信息, 否则将弹出如图4所示对话框;当商品信息输入完毕,单击“确定”按钮,实现商品添加, 弹出如图5所示对话框后,释放窗体...JPanel控件时,必须设置其大小,当然JPanel对象亦然,否则很有可能不能正常显示。...public void actionPerformed(ActionEvent arg0) { dispose(); } }); } } 特别说明: 项目中有一处代码错误,导致添加商品价格会获取到数量

    3.5K20

    java swing 实现数据库增删查改

    最近一个实习生问我,swing好难啊,就是jtable增删查改都做不出来了,我也好久没有做了,各种文档,各种查找,各种百度终于是完成了一个小项目,也就是所说增删除查改。不废话了,上代码。...cob = new JComboBox(deptList.toArray()); // 创建一个使用下拉框代替编辑框单元格对象 DefaultCellEditor dept = new...DefaultCellEditor(cob); // 获取表格列model对象 TableColumnModel col = table.getColumnModel();...// 获取部门列,设置这个列为下拉框列类型 col.getColumn(2).setCellEditor(dept); // 查询所有的用户信息 List list...= userDao.queryAll(); // 遍历每一条数据,添加到model int i = 0; for (User user : list) { //

    2.7K31

    社团活动学分管理系统

    组件并显示 public void Import_Sum(ResultSet result , ResultSet sum ,JTable table){ try {...文件数据导入到数据库,但是一定要注意必须把Excel文件格式转化为xls文件即2003版Excel文件格式。...4) 按照起始认证时间与终止认证时间查询学生活动信息:此功能是可以查询认证时间起始认证时间与终止认证时间之间(包含起始认证时间与终止认证时间)所有学生活动数据信息。下面是该功能截图。...9) 总分查询:可以以学生为类别,查询该学生说有活动信息以及计算总社团活动学分。下面是该功能截图。 ? 10) 记录删除:可以把已经查询并在界面显示所有学生活动信息数据进行删除。...12) Excel文件输出:可以把已经查询显示学生活动记录以Excel文件形式进行输出到电脑桌面。下面是该功能截图。 ?

    5.2K30

    如何在Java中使用Table

    大家好,我是小面,今天给大家分享一下java如何运用Table。 Java,表用于将数据排列成列和行。列是表水平排列空间,而行是表垂直排列空间。...列和行之间交点称为单元格,用于保存单条数据。 Java,开发人员可以使用JTable方法在其应用程序创建表。JTable是从JComponent类继承Swing组件。...您需要在其构造函数为要构造表提供两个参数(row和column),如以下示例代码段所示: JTable table = new JTable (row, column); row和column值可以由两个整数值组成...,它将生成以下输出: 当您单击上述任何一个单元格时,您会注意到其中数据是可编辑。...上面显示代码示例将表直接添加到JFrame容器。但是,您可以将表添加到滚动窗格,这样当数据超出容器时,用户可以轻松浏览数据。

    2.1K40

    解决javahtml转word文档,转成功后word文档断网情况下无法显示图片问题「建议收藏」

    (最严重)图片存在word是一个链接而已。 当我们断网情况下(或者拷贝到两一台电脑上)打开word文档时候 实际上看到图片是一个链接,也就是说图片转化不成功。...好像是涉及到了上面所叙述html转word原理部分,但是那是word做事,鬼知道当我们选择将word另存为.doc格式时候word做了什么操作。。。。...所以尝试了之后也放弃了。 3.用POI 这个jar包 说这个更是扯。 ApachePOI对图片处理不友好,甚至有的版本根本就不支持。入坑很久之后,果断放弃。。。...4. javacdoc 包 亲测 不可以。以上4方法是网上讨论最多,我从09年帖子一直翻到17年,总结下来。。发现并没有找到解决办法。。...实际开发过程不会因为一点问题就换模板。这样不利于开发和维护。

    5.5K20

    JavaSwing_8.1:焦点事件及其监听器 - FocusEvent、FocusListener

    在这种情况下,原来聚焦状态将被自动一旦操作完成恢复,或者,对于窗口失活情况下,当窗口被重新激活。...要熟悉基本焦点概念或获取有关焦点详细信息,请参阅如何使用焦点子系统。 本节说明如何通过特定组件上注册FocusListener实例来获取焦点事件。...要获取许多组件焦点状态,请考虑KeyboardFocusManager类上实现PropertyChangeListener实例,如如何使用焦点子系统将焦点更改跟踪到多个组件中所述。...该窗口显示各种组件。注册每个组件上焦点侦听器报告每个焦点获得和焦点丢失事件。对于每个事件,将报告焦点更改涉及其他组件,即相反组件。...您将在文本区域中看到一条“焦点已获得:JTextField”消息-其“相反组件”为空,因为它是第一个具有焦点组件。 单击标签。什么也没发生,因为默认情况下标签无法获得焦点。 单击组合框。

    4.7K10

    Java Swing JTable

    1 简介 JTable用于显示和编辑常规二维单元格表。有关面向任务文档和使用JTable示例,请参见Java教程的如何使用表。...请注意,如果希望独立视图中(JScrollPane外部)使用JTable并希望显示标头,则可以使用getTableHeader()获取它并单独显示它。...源分发演示区域中“ TableExample”目录提供了一些JTable使用情况完整示例,涵盖了如何使用JTable提供从数据库获取数据可编辑视图以及如何修改显示列。...默认情况下,列可能会在JTable重新排列,以使视图列以与模型列不同顺序出现。这一点根本不影响模型实现:对列进行重新排序时,JTable在内部维护列新顺序并在查询模型之前转换其列索引。...,并支持行内容滚动(滚动行内容时,表头会始终顶部显示)。

    5K10

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

    但是JTable如果想让表头显示仅仅将JTable加入Jpanel或者Jframe是不行,我这里提供两种方式实现1、分别将TableHeader和TableColumn加入控件单独显示,这种情况不常见...然后getValueAt获取指定行数list指定内容就可以填充到表格上了。...JTable控件显示法相信有的朋友遇到过,表格需要显示CheckBox、button等控件,但是我们发现我们定义控件表格上显示成了控件对应字符串了,这又是为什么呢。...方法是JTable决定显示类型主要依据,源码返回默认是object.class,这就意味着我们jtable是true或false或其他类,在这里都会返回object.class,那么jtable...$BooleanRenderer"); }源码中就有渲染器专门处理bool类型,那么我们只需要在getColumnClass进行处理就行了,我们bool单元格返回bool类JTable就会采用

    33810

    脏读,不可重复读,幻读

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

    1.7K10
    领券