(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;
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);
應用:

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

/***
* 清空單元格<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);

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