java swing 表格相关操作
(1)设置表格数据
public static void setTableData3(JTable parameterTable_1,Map requestMap,boolean hasTextField,boolean isTF_table_cell,String[]columnNames) { System.out.println("setTableData3"); int length = requestMap.size(); if (length > 0) { Object[][] datas = new Object[length][]; int count = 0; for (Object obj : requestMap.keySet()) { Object val = requestMap.get(obj); Object[] objs = new Object[3]; RadioButtonPanel panel = new RadioButtonPanel(); panel.init(hasTextField); objs[2] = panel; Color backColor=CustomColor.getMoreLightColor(); // objs[2]="c"+i; if(isTF_table_cell){ JTextArea keyTA=new AssistPopupTextArea(String.valueOf(obj)); keyTA.setBackground(backColor); objs[0] = new JScrollPane(keyTA); }else{ objs[0] =obj; } if (ValueWidget.isNullOrEmpty(val) || val.equals("null") || val.equals("undefined")) {//配置文件中保存的是"null",而不是null val = SystemHWUtil.EMPTY; } if(isTF_table_cell){ JTextArea valTA=new GenerateJsonTextArea(String.valueOf(val)); valTA.setBackground(backColor); objs[1] = new JScrollPane(valTA); }else{ objs[1] = val; } datas[count] = objs; count++; }//for // setTableData2(parameterTable_1,datas,columnNames); appendTableData(parameterTable_1, datas, columnNames); }//if } private static void setTableData2(JTable parameterTable_1,Object[][] datas,String[]columnNames) { DefaultTableModel model = new DefaultTableModel(datas, columnNames); parameterTable_1.setModel(model); parameterTable_1.setRowHeight(30); // rendTable(); } /*** * 追加,原有输入框仍保留,所以可以使用Ctrl+Z * @param datas */ public static void appendTableData(JTable parameterTable_1,Object[][] datas,String[]columnNames){ int rowCount=parameterTable_1.getRowCount(); if(rowCount<1){//如果表格本来为空 setTableData2(parameterTable_1,datas,columnNames); }else{//表格不为空 for(int i=0;i<rowCount;i++){ setTableValueAt(parameterTable_1,i, 0, datas); setTableValueAt(parameterTable_1,i, 1, datas); } DefaultTableModel tableModel = (DefaultTableModel) parameterTable_1.getModel(); for(int i=rowCount;i<datas.length;i++){ tableModel.addRow(datas[i]); } } } /*** * 设置表格单元格的值 * @param rowIndex * @param columnIndex * @param datas */ private static void setTableValueAt(JTable parameterTable_1,int rowIndex,int columnIndex,Object[][] datas){ Object keyObj=datas[rowIndex][columnIndex]; if(keyObj instanceof JScrollPane){ JScrollPane js=(JScrollPane)keyObj; JTextComponent tf=(JTextComponent)js.getViewport().getComponent(0); keyObj = tf.getText(); } String key=null; if(keyObj instanceof String){ key=(String)keyObj; }else{ key=String.valueOf(keyObj); } Object valueAtObj=parameterTable_1.getValueAt(rowIndex, columnIndex); if(valueAtObj instanceof JScrollPane){ JScrollPane keyScrollPane=(JScrollPane)valueAtObj; JTextArea keyTA=(JTextArea)keyScrollPane.getViewport().getComponent(0); keyTA.setText(key); }else{ parameterTable_1.setValueAt(keyObj, rowIndex, columnIndex); } }
应用:
if(requestInfoBean.isRequestBodyIsJson()){//"请求参数"表格不可用 requestBodyDataTA.setText(requestInfoBean.getRequestBodyData()); }else{ TableUtil3.setTableData3(parameterTable_1,requestInfoBean.getRequestParameters(),true,true,columnNames); rendTable(); } public void layoutTable( ) { // Object[][] datas=new Object[1][2]; Object[][] datas=new Object[1][3]; for(int i=0;i<datas.length;i++){ Object[]objs=new Object[3]; RadioButtonPanel panel=new RadioButtonPanel(); panel.init(); objs[2]=panel; if(AutoTestPanel.isTF_table_cell){ objs[0]= new JScrollPane(new AssistPopupTextArea()) ; objs[1]=new JScrollPane(new GenerateJsonTextArea()); } datas[i]=objs; } TableUtil3.appendTableData(parameterTable_1,datas,columnNames); // setTableData2(datas); // repaintTable(); }
(2)清空表格数据
/*** * 清空单元格<br> * @param parameterTable_1 * @param rowIndex * @param columnIndex */ private static void cleanTableValue(JTable parameterTable_1,int rowIndex,int columnIndex){ Object valueAtObj=parameterTable_1.getValueAt(rowIndex, columnIndex); if(valueAtObj instanceof JScrollPane){ JScrollPane keyScrollPane=(JScrollPane)valueAtObj; JTextArea keyTA=(JTextArea)keyScrollPane.getViewport().getComponent(0); keyTA.setText(SystemHWUtil.EMPTY); }else{ parameterTable_1.setValueAt(null, rowIndex, columnIndex); } } /*** * 清空表格数据<br> * @param parameterTable_1 */ public static void cleanTableData(JTable parameterTable_1){ int rowCount=parameterTable_1.getRowCount(); if(rowCount>0){ for(int i=0;i<rowCount;i++){ cleanTableValue(parameterTable_1,i, 0); cleanTableValue(parameterTable_1,i, 1); } } }
应用:
JButton cleanUpTable_66 = new JButton("清空表格"); cleanUpTable_66.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { TableUtil3.cleanTableData(parameterTable_1); parameterTable_1.repaint(); } });
(3)给表格增加一行
/*** * 表格增加一行 */ public static void addParameter(JTable parameterTable_1,String key,boolean hasTextField,boolean isTF_table_cell) { System.out.println("增加一行"); DefaultTableModel tableModel = (DefaultTableModel) parameterTable_1.getModel(); RadioButtonPanel panel = new RadioButtonPanel(); panel.init(hasTextField); String val=null; if(!ValueWidget.isNullOrEmpty(key)){ if(key.contains("=")||key.contains(":")){ String[]strs=key.split("[:=]"); key=strs[0]; val=strs[1]; } } Object[] rowData =null; if(isTF_table_cell){ Color clor=CustomColor.getMoreLightColor(); JTextArea keyTA=new AssistPopupTextArea(key); keyTA.setBackground(clor); JComponent keyTA2=new JScrollPane(keyTA); JTextArea valTA=new GenerateJsonTextArea(val); valTA.setBackground(clor); JComponent valScroll=new JScrollPane(valTA); rowData =new Object[]{keyTA2, valScroll, panel}; }else{ rowData =new Object[]{key, val, panel}; } tableModel.addRow(rowData); }
应用:
/*** * 表格增加一行 */ private void addParameter(String key) { TableUtil.addParameter(this.parameterTable_1, key,true,AutoTestPanel.isTF_table_cell); } JButton addRowButton = new JButton("添加"); addRowButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { addParameter(null); } });
相关推荐
Java Swing 表格分页实现 Java Swing 是一个用于构建图形用户界面的 Java 库,提供了丰富的用户界面组件和功能。在本文中,我们将探讨如何使用 Java Swing 实现表格分页。 表格分页的需求 在实际开发中,我们经常...
在“Java Swing漂亮界面 超酷 JavaSwing教程”中,我们主要会探讨如何利用Swing来设计美观且用户友好的界面。Swing组件的一大优点是它们是轻量级的,这意味着它们完全由Java代码实现,而不是依赖于操作系统提供的...
JTabel的一些方法,表格的设置,按钮的添加,界面的布局,只是一些简单的小玩意
### 使用Java Swing界面实现数据库基本操作 #### 一、引言 在软件开发领域,图形用户界面(GUI)是提高用户体验的重要组成部分。Java Swing作为Java平台上的一个强大的GUI工具包,为开发者提供了丰富的组件和功能来...
总的来说,这个项目涵盖了Java Swing GUI编程、JDBC数据库操作、SQL语句的使用以及基本的异常处理和界面设计原则。通过实践这样的项目,你可以提升你的Java桌面应用开发技能,并加深对数据库操作的理解。
### Java Swing JTable 分页实现详解 #### 一、引言 在开发基于Java Swing的应用程序时,我们经常需要处理大量的数据展示问题。对于表格形式的数据展示,`JTable`是一个非常常用且强大的组件。然而,当数据量过大时...
javaswing表格分.doc
* 了解 Java Swing 表格组件的使用方法,如 JTable、AbstractTableModel 等。 * 了解如何使用 Java Swing 表格组件来显示学生信息。 八、Java 语言异常处理 * 了解 Java 语言的异常处理机制,如 try-catch 语句、...
在Java Swing中进行文件管理涉及到一系列组件和类的使用,可以帮助开发者构建能够读取、写入、浏览和操作文件的应用程序。这里我们将深入探讨Java Swing如何实现文件管理功能。 首先,`JFileChooser`是Java Swing...
java swing 导出Jtable里面的数据到excel,不用拷贝代码,直接粘贴代码
此外,Swing还提供了诸如`JTable`和`JList`这样的组件,用于展示和操作数据表格或列表。 事件处理是Swing应用中的关键部分。通过实现监听器接口,如`ActionListener`,开发者可以响应用户的点击、键盘输入等事件。...
《基于Java Swing的学生信息管理系统详解》 Java Swing是Java Standard Edition (Java SE)的一部分,它提供了一套丰富的用户界面组件,用于构建桌面应用程序。在这个基于Java Swing的学生信息管理系统中,开发者...
Java Swing 中的 JTable 是一个功能强大且灵活的表格组件,广泛应用于各种桌面应用程序中。然而,在实际开发中,我们经常需要检测单元格数据的变更事件,以便实时响应用户的操作。今天,我们将探讨 Java Swing 中...
自己写的一个类,可以用来设定表格奇偶行的颜色,也可以用来设定每一行的颜色,还可以改变其它的属性。
首先,关于Java Swing,它提供了各种组件,如JFrame(窗口)、JButton(按钮)、JLabel(标签)、JTextField(文本框)和JTable(表格)等,这些组件可以组合起来创建复杂的用户交互界面。在员工管理系统中,可能...
Swing 的 JTable 以及相关类提供了对表格的支持。使用 JTable 以及相关类,可以创建功能丰富的表格,还可以为表格定义各种显示外观和编辑特性; 1. 创建表格 在 JTable 类中除了默认的构造方法外,还提供了利用指定...
java swing表格分页控件封装,有利于在开发中节约时间
Java Swing MySQL实现的酒店管理系统项目源码是一款基于Java图形用户界面(GUI)库Swing和关系型数据库管理系统MySQL开发的应用程序。此系统旨在为酒店提供一套全面的后台管理解决方案,涵盖了酒店日常运营中的核心...
总的来说,Java Swing学生请假系统是一个综合性的Java应用实例,涵盖了GUI设计、数据库操作、业务逻辑处理等多个核心技能,对于学习Java编程和毕业设计的同学来说,具有很高的参考价值。通过分析和实践这个项目,...