`

java swing 表格相关操作

 
阅读更多

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);
            }
        });

 

 

 

 

  • 大小: 83 KB
0
1
分享到:
评论

相关推荐

    java_swing表格分页

    Java Swing 表格分页实现 Java Swing 是一个用于构建图形用户界面的 Java 库,提供了丰富的用户界面组件和功能。在本文中,我们将探讨如何使用 Java Swing 实现表格分页。 表格分页的需求 在实际开发中,我们经常...

    java swing漂亮界面 超酷 javaswing教程

    在“Java Swing漂亮界面 超酷 JavaSwing教程”中,我们主要会探讨如何利用Swing来设计美观且用户友好的界面。Swing组件的一大优点是它们是轻量级的,这意味着它们完全由Java代码实现,而不是依赖于操作系统提供的...

    java swing表格JTable

    JTabel的一些方法,表格的设置,按钮的添加,界面的布局,只是一些简单的小玩意

    使用Java Swing界面实现数据库基本操作

    ### 使用Java Swing界面实现数据库基本操作 #### 一、引言 在软件开发领域,图形用户界面(GUI)是提高用户体验的重要组成部分。Java Swing作为Java平台上的一个强大的GUI工具包,为开发者提供了丰富的组件和功能来...

    Java Swing实现添加数据并查询数据显示

    总的来说,这个项目涵盖了Java Swing GUI编程、JDBC数据库操作、SQL语句的使用以及基本的异常处理和界面设计原则。通过实践这样的项目,你可以提升你的Java桌面应用开发技能,并加深对数据库操作的理解。

    Java Swing JTable分页

    ### Java Swing JTable 分页实现详解 #### 一、引言 在开发基于Java Swing的应用程序时,我们经常需要处理大量的数据展示问题。对于表格形式的数据展示,`JTable`是一个非常常用且强大的组件。然而,当数据量过大时...

    javaswing表格分.doc

    javaswing表格分.doc

    java(swing)+ mysql实现学生信息管理系统

    * 了解 Java Swing 表格组件的使用方法,如 JTable、AbstractTableModel 等。 * 了解如何使用 Java Swing 表格组件来显示学生信息。 八、Java 语言异常处理 * 了解 Java 语言的异常处理机制,如 try-catch 语句、...

    java swing文件管理

    在Java Swing中进行文件管理涉及到一系列组件和类的使用,可以帮助开发者构建能够读取、写入、浏览和操作文件的应用程序。这里我们将深入探讨Java Swing如何实现文件管理功能。 首先,`JFileChooser`是Java Swing...

    java swing 导出Jtable里面的数据到excel

    java swing 导出Jtable里面的数据到excel,不用拷贝代码,直接粘贴代码

    JAVA swing中文离线API文档

    此外,Swing还提供了诸如`JTable`和`JList`这样的组件,用于展示和操作数据表格或列表。 事件处理是Swing应用中的关键部分。通过实现监听器接口,如`ActionListener`,开发者可以响应用户的点击、键盘输入等事件。...

    基于java swing的学生信息管理系统.zip

    《基于Java Swing的学生信息管理系统详解》 Java Swing是Java Standard Edition (Java SE)的一部分,它提供了一套丰富的用户界面组件,用于构建桌面应用程序。在这个基于Java Swing的学生信息管理系统中,开发者...

    Java Swing实现JTable检测单元格数据变更事件的方法示例

    Java Swing 中的 JTable 是一个功能强大且灵活的表格组件,广泛应用于各种桌面应用程序中。然而,在实际开发中,我们经常需要检测单元格数据的变更事件,以便实时响应用户的操作。今天,我们将探讨 Java Swing 中...

    java Swing可以改变表格每一行颜色的类

    自己写的一个类,可以用来设定表格奇偶行的颜色,也可以用来设定每一行的颜色,还可以改变其它的属性。

    Java Swing 简单的员工管理系统

    首先,关于Java Swing,它提供了各种组件,如JFrame(窗口)、JButton(按钮)、JLabel(标签)、JTextField(文本框)和JTable(表格)等,这些组件可以组合起来创建复杂的用户交互界面。在员工管理系统中,可能...

    Java Swing 表格组件

    Swing 的 JTable 以及相关类提供了对表格的支持。使用 JTable 以及相关类,可以创建功能丰富的表格,还可以为表格定义各种显示外观和编辑特性; 1. 创建表格 在 JTable 类中除了默认的构造方法外,还提供了利用指定...

    swing表格分页控件封装

    java swing表格分页控件封装,有利于在开发中节约时间

    java swing mysql实现的酒店管理系统项目源码_swing_JavaSwing_酒店管理系统_

    Java Swing MySQL实现的酒店管理系统项目源码是一款基于Java图形用户界面(GUI)库Swing和关系型数据库管理系统MySQL开发的应用程序。此系统旨在为酒店提供一套全面的后台管理解决方案,涵盖了酒店日常运营中的核心...

    java swing学生请假系统

    总的来说,Java Swing学生请假系统是一个综合性的Java应用实例,涵盖了GUI设计、数据库操作、业务逻辑处理等多个核心技能,对于学习Java编程和毕业设计的同学来说,具有很高的参考价值。通过分析和实践这个项目,...

Global site tag (gtag.js) - Google Analytics