天天看點

java swing 表格相關操作

(1)設定表格資料

java swing 表格相關操作

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;  

                    jtextarea valta=new generatejsontextarea(string.valueof(val));  

                    valta.setbackground(backcolor);  

                    objs[1] = new jscrollpane(valta);  

                    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 

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

            parametertable_1.setvalueat(keyobj, rowindex, columnindex);  

 應用:

java swing 表格相關操作

 if(requestinfobean.isrequestbodyisjson()){//"請求參數"表格不可用  

            requestbodydatata.settext(requestinfobean.getrequestbodydata());  

            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)清空表格資料

java swing 表格相關操作

/*** 

     * 清空單元格<br> 

     * @param parametertable_1 

    private static void cleantablevalue(jtable parametertable_1,int rowindex,int columnindex){  

            keyta.settext(systemhwutil.empty);  

            parametertable_1.setvalueat(null, rowindex, columnindex);  

     * 清空表格資料<br> 

    public static void cleantabledata(jtable parametertable_1){  

        if(rowcount>0){  

                cleantablevalue(parametertable_1,i, 0);  

                cleantablevalue(parametertable_1,i, 1);  

java swing 表格相關操作

jbutton cleanuptable_66 = new jbutton("清空表格");  

       cleanuptable_66.addactionlistener(new actionlistener() {  

        public void actionperformed(actionevent e) {  

            tableutil3.cleantabledata(parametertable_1);  

            parametertable_1.repaint();  

       });  

(3)給表格增加一行

java swing 表格相關操作

     * 表格增加一行 

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

            rowdata =new object[]{key, val, panel};  

        tablemodel.addrow(rowdata);  

java swing 表格相關操作

    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 表格相關操作