求解: setText() 无法更新 公用JTextField的问题!

[复制链接]
查看11 | 回复2 | 2021-1-27 05:09:33 | 显示全部楼层 |阅读模式
录入数据的输入框与点击右侧集合列表向输入框显示具体信息是共用的,
录入信息好使,点击列表就更新输入框了,
明明构造方法传入了值,print也输出了,可是setText()就是不运行
这是成功录入数据,生成右侧的列表


当点击右侧列表时,左侧输入框不刷新







这个判定确定的清空setText()就好使
//点击确定按钮
if(e.getSource()==button7){
if(flagAge&&flagClass&&flagID&&flagName&&flagSex){
sta.executeUpdate(into);
JOptionPane.showMessageDialog(null,"添加成功!");
//清空输入框
stuName.setText("");
stuAge.setText("");
stuClass.setText("");
stuID.setText("");
stuSex.setText("");
//文本域显示命令
tamlh.setText("");//清空
tamlh.append(beginTime+"执行成功:"+into+"\n");
//向集合框里添加列表项
stuList.add(IDText+","+nameText);
}else{
sta.executeUpdate(update);//删除空值
JOptionPane.showMessageDialog(null,"你的输入不合法!");
tamlh.setText("");//清空
tamlh.append(beginTime+":请输入完整的学生信息!\n");
}
}

下面贴源码这个注册了监听器stuList.addActionListener(newListListener());//调用类:列表项的点击方法列表的点击
看百度说什么线程问题,但是我自己写了个线程setText()也不运行啊
StringnameList=null;
StringstuClassList=null;
StringIDList=null;
StringsexList=null;
StringageList=null;
//构造函数传递ListList内查询的值赋给输入框
publicvoidstuText(StringnameList,StringstuClassList,StringIDList,StringsexList,StringageList){
newfListrun=newnewf();
this.nameList=nameList;
this.stuClassList=stuClassList;
this.IDList=IDList;
this.sexList=sexList;
this.ageList=ageList;
Threadth=newThread(Listrun);
th.start();
System.out.println("运行了"+nameList+stuClassList+IDList+sexList+ageList);
}
@Override
publicvoidrun(){
stuName.setText(nameList);
stuAge.setText(stuClassList);
stuClass.setText(IDList);
stuID.setText(sexList);
stuSex.setText(ageList);
System.out.println("运行了111111"+nameList+stuClassList+IDList+sexList+ageList);
}
这个时调用的类
packageDaZuoYe;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.ItemEvent;
importjava.awt.event.ItemListener;
importjava.sql.*;
importjava.util.Arrays;
classListListenerimplementsActionListener,ItemListener{
StringnameList=null;
StringstuClassList=null;
StringIDList=null;
StringsexList=null;
StringageList=null;
@Override
publicvoiditemStateChanged(ItemEvente){
//TODOAuto-generatedmethodstub
//System.out.println(e.getSource());
}
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
//System.out.println(e.getActionCommand());
Stringstr=e.getActionCommand();
String[]arr=str.split(",");//用,分割
System.out.println(Arrays.toString(arr));
try{
Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动程序
Connectionconn=DriverManager.getConnection(//链接数据库
"jdbc:mysql://112.125.95.197:3306/java",
"java","Aa316216");//建立数据库连接
Statementsta=conn.createStatement();//用sta执行SQL语句

Stringselect="select*fromstuwherename='"+arr[1]+
"'andID='"+arr[0]+"';";
System.out.println(arr[0]+arr[1]);
ResultSetrs=sta.executeQuery(select);
while(rs.next()){
nameList=rs.getString(1);
stuClassList=rs.getString(2);
IDList=rs.getString(3);
sexList=rs.getString(4);
ageList=rs.getString(5);
}
System.out.println(nameList+stuClassList+IDList+sexList+ageList);
newnewf().stuText(nameList,stuClassList,IDList,sexList,ageList);

}catch(ClassNotFoundExceptionclassNotFoundException){
classNotFoundException.printStackTrace();
}catch(SQLExceptionthrowables){
throwables.printStackTrace();
}
}
}

我怕我这个菜鸟说不懂,
本来想把全部代码贴出来了,结果发现字数不够了


求大佬们解惑!
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:09:33 | 显示全部楼层
你看看是不是那个文本框的问题,是否是disable或者其他什么原因
回复

使用道具 举报

千问 | 2021-1-27 05:09:33 | 显示全部楼层
已经解决谢谢,传的值不是静态,静态就好使好了,为啥静态可以用?不是静态能获取到也用不了?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行