`

Java Swing 在JTable里增加动态数据的下拉框

阅读更多
http://www.gbsou.com/2011/01/07/3400.htmlJava Swing 在JTable里增加动态数据的下拉框

首先我得申明下。这个在jtable中增加下拉框的代码源自于网文,但是他增加的数据是写死的,并不使用于动态的生成,网上也基本上没这个技巧的介 绍。经过2天的努力我终于做出来了,在此分享下,本文随便转载,Java本来就是开源的,不喜欢网上那种不让转载还唧唧歪歪的,但是请尊重我的劳动成果。 在转载本文时保留我的连接:http://www.ij2ee.com/2011/01/07/java-swing-在jtable里增加动态数据的下拉框.html

下面代码是我在网络上的代码上的修改。我会给出思路,修改只是把拥有一个一个字符串数组构造函数改写成了使用Vector,处于对字符串数组不易于自动增加大小,设置小了会造成数组越界异常,设置太大,倒是jtable上会出现大量的空白行。

——————————————————–
首先我们要继承JComboBox和DefaultCellEditor
代码
1 class MyComboBoxEditor extends DefaultCellEditor {
2       public MyComboBoxEditor(Vector<String> items) {
3         super(new MyCombox(items));
4       }
5 }
6
7 class MyCombox extends JComboBox{
8     public MyCombox(Vector<?> items) {
9         super(items);
10     }
11    
12 }



改写他们的目的是为了能给jtable的单元格增加下拉框。 其实没有MyCombox,的必要,直接new JCombox 就可以了 但是我的想法是改写jcombox 这里就不列出我的部分代码了。而且那也不是本文的重点。

————————————————-

第二 当上面的DefaultCellEditor 被改写好后 我们就可以把他赋给jtable的一个单元格了,这里为了后面的方便 我们讲继承jtable。


代码
1 class MyTable extends JTable{
2   
3   
4     public MyTable() {
5         super();
6         // TODO Auto-generated constructor stub
7     }
8     int myRow=-1,myCol=-1;
9     TableCellEditor myEditor;
10     public void setComboCell(int r,int c,TableCellEditor ce){
11         this.myRow=r;
12         this.myCol=c;
13         //这里将引用我们前面定义的cellEditor
14         this.myEditor=ce;
15       
16     }
17
18     @Override
19     public TableCellEditor getCellEditor(int row, int column) {
20         if(row==myRow&&column==myCol&&myEditor!=null)
21             return myEditor;
22         return super.getCellEditor(row, column);
23     }
24   
25 }

———————————————–

第三 当上面的准备都做好时 就方便了。下面我们该准备数据了。

这里所要提到的是 我们的替换数据将存放在一个
private Map<String, Vector<String>> insteadMap = new HashMap<String, Vector<String>>();

里。

这里的map的 Vector<String> 就是我们要替换下拉的数据。 key是查询条件。

比如我们有数据

A –> a1,a2,a3,a4,a5

B –> b1,b2,b3,b4

在table的初始化中的单元格数据将显示A,当点击A的时候将会去上面的insteadMap中寻找替代数据Vector,并引用第二步中的方法去替换当前单元格

————————————————–

第四步 最终调用方法
代码
Vector<String> s = insteadMap.get(vl+""); //这里的vl就相当于第三步中的 A B
if(s == null||s.isEmpty()){
  return;
}

//下面的方法三个参数是(要替换成下拉框单元格的行,列,及我们的Editor)
dataTable.setComboCell(t.getSelectedRow(), 2, new MyComboBoxEditor(insteadMap.get(vl.toString())));

这里要注意的是 dataTable是用的我们第二步中自定义的JTable

private MyTable dataTable = dataTable = new MyTable();

好了本文完成。好累啊。记得转载保留本文住处:http://www.ij2ee.com/2011/01/07/java-swing-在jtable里增加动态数据的下拉框.html
          




固定链接: Java Swing 在JTable里增加动态数据的下拉框 | 爱J2EE +复制链接
分享到:
评论

相关推荐

    java Swing Jtable 下拉动态加载数据

    JTable实现下拉动态加载数据,滑动动态加载数据,纯原生态java。

    java swing 多选下拉框 支持动态加载数据

    Java Swing 是Java GUI(图形用户界面)库,用于构建...通过以上知识点的应用,你可以创建一个能够动态加载数据且支持多选的Java Swing下拉框。这种组件在各种数据选择场景中都非常有用,如配置设置、过滤器选择等。

    Java Swing高级空件JTable的用法

    Java Swing中的JTable组件是用于显示和编辑数据的表格控件。它是Swing中最复杂和强大的组件之一,具有许多高级功能和灵活的配置选项。下面将详细介绍JTable的用法和相关知识点。 1. JTable与TableModel JTable组件...

    JAVA SWING 图书管理系统

    在这个“JAVA SWING 图书管理系统”中,我们将深入探讨如何利用Swing构建一个功能完善的图书管理软件。 **一、Swing组件库** 1. **容器组件**:Swing提供了多种容器组件,如JFrame(主窗口)、JPanel(面板)和...

    基于Java Swing简易的图书管理系统

    本项目“基于Java Swing简易的图书管理系统”利用了Swing丰富的组件库和事件处理机制,构建了一个简单的图书管理应用程序,实现了对图书数据的增删查改功能。 1. **Swing组件基础** - `JFrame`: 作为应用程序的主...

    JavaSwing帮助文档

    这个“JavaSwing帮助文档”是专为学习和深入理解Swing而设计的一份详细教程,无论你是Java GUI编程的新手还是有一定经验的开发者,都能从中受益。 Swing 提供了一组组件,这些组件可以构建出功能丰富的、美观的窗口...

    java_swing大量的table例子

    在Swing中,`JTable`是一个非常重要的组件,它允许开发者在应用程序中展示二维数据,并且支持多种交互功能,如排序、选择、编辑等。这个压缩包文件"java_swing大量的table例子"显然提供了丰富的`JTable`使用示例,...

    swing jtable 合并

    此外,`JTable`还可以与其他Swing组件结合使用,比如`JScrollPane`用于滚动,`JComboBox`作为下拉框选择列的值,`JButton`作为操作按钮等,这些都在`swing`目录下的其他文件中可能会有所涉及。 总的来说,`JTable`...

    Java JTable 使用

    Java JTable 是Java Swing库中的一个核心组件,用于在GUI应用程序中展示表格数据。它提供了丰富的功能,使得用户可以查看、编辑和操作二维数据集。在这个主题中,我们将深入探讨JTable的使用,包括它的基本概念、...

    Java swing开发的GUI图书馆后台管理系统,可做为java毕业设计.zip

    1. **Swing组件使用**:系统可能包含了JFrame、JPanel、JButton、JLabel、JComboBox、JTextArea、JTable等Swing组件,这些组件用于构建图形界面,如主窗口、按钮、标签、下拉框、文本域和表格,以展示图书信息、执行...

    基于Java swing的风景日历课程设计

    Swing提供了多种组件,如JFrame(窗口)、JPanel(面板)、JButton(按钮)、JLabel(标签)、JComboBox(下拉框)等,这些都在这个日历系统中发挥了关键作用。JFrame是窗口的基础,用于承载所有的组件。JPanel则...

    Java swing 健身房管理系统

    在Swing中,开发者可以使用各种组件来创建用户界面,例如JFrame用于窗口,JButton用于按钮,JLabel用于显示文本,JTable用于展示数据表格等。这些组件使得开发者能够设计出交互性强、用户体验良好的图形界面。在健身...

    Java Swing 机票管理系统

    在Java Swing中,开发者可以创建出美观、功能丰富的桌面应用程序,比如我们的“Java Swing 机票管理系统”。 在构建这样一个系统时,首先需要理解Swing的基本组件,例如JFrame、JPanel、JButton、JLabel、...

    基于Java Swing实现的学生档案查询系统源代码,含GUI界面

    在Java Swing中,组件(Components)是构成GUI的基本元素,如按钮(JButton)、文本框(JTextField)、表格(JTable)等。在这个学生档案查询系统中,可能包含了以下关键组件: 1. **主窗口(JFrame)**:作为应用...

    售楼管理系统 java-swing

    此外,Swing还提供了一些高级组件,如JTable(表格)、JList(列表)和JTree(树形结构),这些组件在展示大量数据时非常有用。在售楼管理系统中,JTable可能用于展示房源信息,JList可能用于展示客户列表,JTree则...

    java课程设计-基于Java swing的学生管理系统(源码+数据库).zip

    在学生管理系统中,Java Swing被用来创建各种组件,如文本框(JTextField)、下拉框(JComboBox)、按钮(JButton)等,这些组件构成了用户与系统交互的图形界面。例如,开发者可能使用JFrame作为主窗口,用JTable...

    Java swing实现学生信息管理系统源码.zip

    在这个“Java Swing实现学生信息管理系统源码”中,我们可以看到一个基于Java编程语言的系统,它使用Swing组件来构建用户界面,用于管理和操作学生数据。下面将详细探讨这个系统可能涉及的技术和知识点。 1. **Java...

    JAVA_Swing小示例

    例如,JTable组件的模型管理表格数据,视图显示这些数据,控制器处理用户操作。 5. **可定制外观**: Swing提供Nimbus、Metal、Windows和Motif等不同外观和感觉(Look and Feel),开发者可以根据需求改变应用的视觉...

    基于 java swing 的火车购票系统项目源码

    【Java Swing 火车购票系统项目源码详解】 Java Swing 是 Java 平台上的一个图形用户界面(GUI)工具包,它允许开发者创建桌面应用软件。本项目是基于 Java Swing 开发的一个火车购票系统,提供了完整的源码,对于...

Global site tag (gtag.js) - Google Analytics