JTable具有许多功能,可以自定义其呈现和编辑功能,但是为这些功能提供了默认设置,因此可以轻松设置简单的表。...使用专门的渲染器和编辑器。 JTable仅使用整数来引用它显示的模型的行和列。 JTable只是采用表格形式的单元格范围,并在绘制过程中使用getValueAt(int,int)从模型中检索值。...如果启用了排序,则JTable将根据排序模型保留选择和可变行高。...(int rowHeight) // 设置指定行的行高 void setRowHeight(int row, int rowHeight) /** 设置当手动改变某列列宽时,其他列的列宽自动调整模式,...*/ public Class getColumnClass(int columnIndex); 判断指定单元格是否可编辑 如果行和列中的单元格是可编辑的,则返回true。
在Java中,表用于将数据排列成列和行。列是表中水平排列的空间,而行是表中垂直排列的空间。列和行之间的交点称为单元格,用于保存单条数据。...frame.setLocationRelativeTo(null); frame.setVisible(true); } } 如果在Idea中运行此代码,它将生成以下输出: 当您单击上述任何一个单元格时...所有表(包括使用JTable方法创建的表)都使用表模型来管理其数据。当开发人员没有向JTable的构造函数提供表模型时,将自动为其创建DefaultTableModel的实例。...,你会发现它是不可编辑的。...但是,您可以将表添加到滚动窗格中,这样当数据超出容器时,用户可以轻松浏览数据。
java winform开发,所以界面怎么快就怎么做了,我直接在窗体的“设计”模式下直接拖“表格”出来就了事,在默认的情况下,这个表格还会有几行几列的填充内容的,如果需要编辑,可以先点击表格进入它的编辑状态...,然后右击,选择“表内容”就可以进行表格的行和列的编辑了,不过通常情况下,表格的内容都是动态生成的,所以在控件上直接编辑它的内容的意义是不大的,当然,做DEMO时比较有用。...添加行标识 我们知道,JTable的每一个单元格,要求的值类型是一个Object的实例,也就是说,只要是一个对象就可以了,这个机制,给了我们非常大的发挥空间,我们可以在一个单元格中存放任意类型的对象,...只要在这个对象中重写一下toString()方法,将我们希望在单元格中显示的内容return出来就可以了,只JTable本身,并没有提供设置行id等识别表格行对象的方法,所以我想到了自己定义一个单元格对象...,每一行中至少有一个单元格是我所定义这个对象的实例,这样,在捕捉事件的时候,只要我从触发事件的行中提取到这个单元格对象出来,就解决了行标记的问题了。
JTable table = new JTable(); 2) 以表头和表数据创建表格. [图片] 3) 以表头和表数据创建表格,并且让表单元格不可改....);// rowIndex是要删除的行序号 四.存取表格单元格的数据 1) 取单元格数据 DefaultTableModel tableModel = (DefaultTableModel) table.getModel...a1 = new JTable (20,3); a1.setRowHeight (30);//设置高度 a1.setDragEnabled(true); //设置第一、二列不可可编辑...> getColumnClass(int columnIndex) { return types[columnIndex]; } // //使table不可编辑的代码(...boolean isCellEditable(int row, int col) { return editables[col]; } //指定行不可编辑
而一般情况使用JTable(Vector rowData,Vector columnNames) 在Java方法中,如果参数需要传递接口,可以在调用方法时传递一个(匿名)对象,该对象是一个不具名的类的实例...其次是表格样式,表格将数据和如何显示数据(比如列数量、列名称、是否可编辑)保存在其数据模版中,该模版实现自接口TableModel。 最后,表格(每一个单元格)可以设置渲染效果。...* 可以通过row和column索引判断某一个单元格是否可编辑 49 49 * 此处设为都不可编辑 50 50 * @see javax.swing.table.DefaultTableModel...,然后设置单元格渲染 87 85 // 设置列编辑器 88 86 // 在以复选框为对象设置列编辑器时,必须保证该列能够被编辑,否则无法更改状态 89 87...// (此步骤可以省略,省略时不要忘记将列设为不可编辑) 90 88 // table.getColumnModel().getColumn(1).setCellEditor
我需要一个几行几列的表格,至于每个单元格显示的内容就是通过getValueAt这个方法实现的,到这里我们就实现了,jtable的model自定义显示。...显示模块去刷新从1-6行的所有数据,所以说比如你更新了第一行的数据,而你用的两个参数是1,4.那么恭喜你,你的更新JTable无法实现,因为他只更新从第二行开始到第五行的数据。...),如果不在数据中添加那么我们的getClass方法就起不到作用,这个用到了下面的知识来解决JTable渲染和编辑这种呢其实就是上面的getClass底层的实现方式,JTable中源码我们上面可以看出JTable...setCellEditor和setCellRenderer大家可以观察源码,在JTable的编辑器中AbstractCellEditor是基础的抽象类,他继承了CellEditor,怎么样熟悉吗,这个不就是和...设置完了编辑器,我们最终要是只渲染器,就是JTable最终如何显示的问题。和上面的那个一样。
如果你允许对列表框中的项目进行多次选择,那么用户就可以选定框中项目的任何组合。...,并且可以检索每个元素。...当用户选定树节点时,某些信息就会显示在另一个窗口中。 若要取得这样的运行特性,你可以安装一个树选择监听器(tree selection listener)。...当JTable需要查看某个值时,过滤器模型便计算实际的行索引,并且从模型中获取该值。...selected 如果单元格目前已经被选定 ,则 true hasFocus 如果单元格目前已经被选定,则 true row,column 单元格的行与列 当表格想要绘制一个单元格时,该方法便被调用。
下拉式菜单包含若干个菜单项,每个菜单项在用户单击时引发一个动作,菜单可以看做一组层次化管理的命令集合。...弹出式菜单也称为快捷菜单,它是相当于某个指定组件的,当该组件受到鼠标单击时,会弹出一个菜单,这个菜单就是弹出式菜单。弹出式菜单的结构比较简单,最多只有二级菜单。...12.3.1 JTable 表格也是Swing GUI编程中常用的组件,表格是一个由行、列组成的二维显示区域,Swing的JTable提供了对表格的支持,通过使用JTable创建表格是非常容易的,它的构造方法如表...JTable类的构造方法 构造方法 功能描述 public JTable() 构造一个默认的JTable,使用默认的数据模型、默认的列模型和默认的选择模型对其进行初始化。...public JTable(int numRows, int c) 使用 DefaultTableModel 构造具有 numRows 行和 numColumns 列个空单元格的 JTable。
网上有很多关于怎样实现JTable不能被编辑的文章,因为如果不设置的话,双击单元格就会将单元格的内容读入一个默认的编辑器里,很多时候我们并不希望这样的事情发生,所以必须do something来阻止它。...呵呵,好吧,我承认大家都知道下面这种方法可以实现让整个表格不不允许被编辑 DefaultTableModel newTableModel = new DefaultTableModel(dataVector...其实仔细观察一下,这个isCellEditable方法会传两个参数进来,明眼人一看就知道,这分别是单元格的行和列索引,所以,根据这个row和column来控制返回true或false,我们的愿望就能实现了...3){ return true; }else{ return false; } } 2、只允许表格的第二行、第二列的单元格被编辑 public boolean...if(row == 2 && column == 2){ return true; }else{ return false; } } 3、只允许表格的第4行和第
在应用阅读模式时,屏幕阅读器用户只能发现可聚焦的元素和标记可聚焦元素的内容。因此,屏幕阅读器用户可能会在不知情的情况下忽略网格中包含的元素,当它们不可聚焦或不用于标记列或行。...如果网格包含带有用于选择行的复选框的列,则该键可以用作在焦点不在复选框时勾选框的快捷方式。 Control + A: 选择所有单元格。...Shift + Space: 选择包含焦点的行。如果网格包含用于选择行的复选框的列,当焦点不在复选框上时,可作为选中复选框的快捷键。 Control + A: 选择所有单元格。...如果网格支持选择,当单元格或行被选择时,被选择元素的 aria-selected 设置为 true。...般来说,使用键盘进行导航时,不可用元素不可聚焦。但是,在某些需要发现功能的场景中,如果不可用元素可聚焦,可以帮助屏幕阅读器用户发现这些功能的存在。
游客可以对旅游路线,旅游班次,旅游团,保险,导游,交通工具以及宾馆的信息查询,并且游客可以在线报名旅游。同时公司业务管理员可以对所有报名信息进行处理,确认之后导出报名信息交由旅行社。...this.setTimer(time1); //创建表模型 DefaultTableModel dt=new DefaultTableModel(data,header){ //设置表格内容不可被编辑...public boolean isCellEditable(int row, int column) { return false;//返回true表示能编辑,false表示不能编辑...m.setVisible(true); } }); //创建表模型 dt=new DefaultTableModel(data,header){ //设置表格内容不可被编辑...; } else { //获取用户选择的数据 String id=jTable.getValueAt(jTable.getSelectedRow(), 0).toString
理解单元格的编辑模式 通常情况下,当终端用户双击单元格时,编辑控件将允许用户在该单元格中输入内容。在一个单元格中编辑的能力被称为编辑模式。一些属性和方法可以用来自定义编辑模式的使用。...当一个单元格处于编辑模式时,活动单元格将显示一个I型光标,如下图所示。当该单元格不处于编辑模式时,活动单元格将显示一个焦点长方形,如下图所示。...当一个单元格进入编辑模式时,触发EditModeOn事件;当一个单元格离开编辑模式时,触发EditModeOff事件。...为了移动备注,当指针在备注上时,单击鼠标左键 选择它,将它拖曳到目标位置,并且释放鼠标左键以将其置于正确位置。单元格备注指示器上的即时贴延伸出的线可以适应备注的任何位置。...这种情况可能会发生在一个复选框单元格中,或在不可编辑的组合框单元格中,或者当光标移动到超链接单元格中的时候。 当单元格处于编辑模式时,单元格备注指示器并不会出现 。
大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。...假设希望,DataGridView 内全部单元格都不可编辑, 那么仅仅要: // 设置 DataGridView1 为仅仅读 DataGridView1.ReadOnly = true;此时,用户的新增行操作和删除行操作也被屏蔽了...******假设希望,DataGridView 内某个单元格不可编辑, 那么仅仅要: // 设置 DataGridView1 的第2列整列单元格为仅仅读 DataGridView1.Columns[...DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically; *******依据条件设定单元格的不可编辑状态 当一个一个的通过单元格坐标设定单元格...「Ctrl + V」按下进行粘贴时,DataGridView 没有提供方法,仅仅能自己实现。 下面,是粘贴时简单的事例代码,将拷贝数据粘贴到以选择单元格開始的区域内。
单元格的编辑模式 通常情况下,当终端用户双击单元格时,编辑控件将允许用户在该单元格中输入内容。在一个单元格中编辑的能力被称为编辑模式。一些属性和方法可以用来自定义编辑模式的使用。...当一个单元格处于编辑模式时,活动单元格将显示一个I型光标,如下图所示。当该单元格不处于编辑模式时,活动单元格将显示一个焦点长方形,如下图所示。...你可以设置EditModeReplace属性, 将光标改变为选择单元格中存在的文本。...如果你愿意,你可以使用EditModePermanent属性指定一个单元格, 当该单元格变为活动单元格时一直处于编辑模式。...另外一种锁定单元格的方法是将单元格类型设置为文本单元格(使用TextCellType)并且将属性设置为只读(ReadOnly)。 这样,单元格就不可以编辑了。
单元格类型常常在数据模型中传递原始数据。 头部单元格 头部的单元格是可以渲染的,但是是不可编辑的。虽然你可以将一种单元格类型赋给行头或者列头的单元格,但是单元格类型仅仅用来描绘。...在单元格中,编辑操作被限制在数据区域的单元格中。如果你想将一些可编辑的部件像 表头那样进行操作,你可以将列头隐藏(或者关闭) ,将表单的第一行冻结,然后使用冻结的行作为你的伪头部单元格。...虽然按钮可以显示10个字符,但第一个和最后一个字符将会非常接近按钮的边缘。 当使用控件时,仅需点击确定或取消按钮关闭控件。...例如,当你选择日期时间单元格时,你可以向用户可以提供一个日历以便选择一个日期。这个日历控件将被称为子编辑器。 创建一个子编辑器 你可以创建你自己的子编辑器,当此操作完成时,此编辑器就会显示。...通过点击F4键 通过在编辑模式中双击单元格 通过点击下拉按钮(当DropDownButton属性被设为“True”时) 创建你自己的子编辑器的步骤是: 1) 为一个子编辑器创建一个新的Form类。
如果希望,DataGridView 内所有单元格都不可编辑, 那么只要: // 设置 DataGridView1 为只读 DataGridView1.ReadOnly = true;此时,用户的新增行操作和删除行操作也被屏蔽了...******如果希望,DataGridView 内某个单元格不可编辑, 那么只要: // 设置 DataGridView1 的第2列整列单元格为只读 DataGridView1.Columns[1].ReadOnly...但是可以通过程序,调用 DataGridView.BeginEdit 方法,使单元格进入编辑模式进行编辑。...DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically; *******根据条件设定单元格的不可编辑状态 当一个一个的通过单元格坐标设定单元格...「Ctrl + V」按下进行粘贴时,DataGridView 没有提供方法,只能自己实现。 以下,是粘贴时简单的事例代码,将拷贝数据粘贴到以选择单元格开始的区域内。
最近一个实习生问我,swing好难啊,就是jtable的增删查改都做不出来了,我也好久没有做了,各种文档,各种查找,各种百度终于是完成了一个小的项目,也就是所说的增删除查改。不废话了,上代码。...用于存储表格数据 private IDeptDao deptDao; private IUserDao userDao; private String oldValue = "";// 保存单元格编辑...如果旧的值 和新的值一样,直接 返回 if (nVal.equals(oldValue)) { return; } // 判断当前编辑的单元格是否是主键列...deptList = deptDao.queryAll(); JComboBox cob = new JComboBox(deptList.toArray()); // 创建一个使用下拉框代替编辑框的单元格对象...void del() { if (table.getSelectedRowCount() <= 0) { JOptionPane.showMessageDialog(null, "请选择要删除的数据行
如果希望,DataGridView 内所有单元格都不可编辑, 那么只要: // 设置 DataGridView1 为只读 DataGridView1.ReadOnly = true;此时,用户的新增行操作和删除行操作也被屏蔽了...******如果希望,DataGridView 内某个单元格不可编辑, 那么只要: // 设置 DataGridView1 的第2列整列单元格为只读 DataGridView1.Columns[1]....但是可以通过程序,调用 DataGridView.BeginEdit 方法,使单元格进入编辑模式进行编辑。...DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically; *******根据条件设定单元格的不可编辑状态 当一个一个的通过单元格坐标设定单元格...「Ctrl + V」按下进行粘贴时,DataGridView 没有提供方法,只能自己实现。 以下,是粘贴时简单的事例代码,将拷贝数据粘贴到以选择单元格开始的区域内。
图2 3、单击“添加商品”按钮,弹出如图3所示的窗体,此时必须输入所有商品信息, 否则将弹出如图4所示的对话框;当商品信息输入完毕,单击“确定”按钮,实现商品的添加, 在弹出如图5所示的对话框后,释放窗体...图3 图4 图5 图6 三、重要说明 对于“添加”功能,程序员可以不用按照上述步骤实现,可以自定义添加界面,只要能实现添加功能即可。...5、获取选定行的索引值,参考代码如下: int index=table.getSelectedRow();//table为表格对象 获取选定行的商品名称,参考代码如下: table.getValueAt...(index,1);//index为选定行的索引值 6、在编写代码时,最好用方法对重复使用的代码进行封装,尽量减少代码的冗余; 7、编译程序,并运行。...()<0) { JOptionPane.showMessageDialog(null, "请选择要修改的数据!")
——————————————————————————– ② DataGridView 设定单元格只读: 1) 使用 ReadOnly 属性 如果希望,DataGridView 内所有单元格都不可编辑...如果希望,DataGridView 内某个单元格不可编辑, 那么只要: // 设置 DataGridView1 的第2列整列单元格为只读 DataGridView1.Columns[1].ReadOnly...但是可以通过程序,调用 DataGridView.BeginEdit 方法,使单元格进入编辑模式进行编辑。...DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically; 3) 根据条件设定单元格的不可编辑状态 当一个一个的通过单元格坐标设定单元格...「Ctrl + V」按下进行粘贴时,DataGridView 没有提供方法,只能自己实现。 以下,是粘贴时简单的事例代码,将拷贝数据粘贴到以选择单元格开始的区域内。
领取专属 10元无门槛券
手把手带您无忧上云