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

weixin_46017755 2020-12-02 10:27:15
录入数据的 输入框 与 点击右侧集合列表向输入框 显示具体信息 是共用的,
录入信息好使, 点击列表 就更新 输入框了,
明明构造方法传入了值,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(new ListListener()); //调用类 : 列表项的点击方法 列表的点击
看百度说什么线程问题,但是我自己写了个线程 setText()也不运行啊

String nameList = null;
String stuClassList = null;
String IDList = null;
String sexList = null;
String ageList = null;
//构造函数 传递List List内查询的值 赋给 输入框
public void stuText(String nameList, String stuClassList, String IDList, String sexList, String ageList) {
newf Listrun = new newf();
this.nameList = nameList;
this.stuClassList = stuClassList;
this.IDList = IDList;
this.sexList = sexList;
this.ageList = ageList;
Thread th = new Thread(Listrun);
th.start();
System.out.println("运行了" + nameList + stuClassList + IDList + sexList + ageList);
}
@Override
public void run() {
stuName.setText(nameList);
stuAge.setText(stuClassList);
stuClass.setText(IDList);
stuID.setText(sexList);
stuSex.setText(ageList);
System.out.println("运行了111111" + nameList + stuClassList + IDList + sexList + ageList);
}

这个时调用的类

package DaZuoYe;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.sql.*;
import java.util.Arrays;

class ListListener implements ActionListener,ItemListener{

String nameList = null;
String stuClassList = null;
String IDList = null;
String sexList = null;
String ageList = null;

@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
//System.out.println(e.getSource());
}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//System.out.println(e.getActionCommand());

String str = e.getActionCommand();
String[] arr = str.split(","); // 用,分割
System.out.println(Arrays.toString(arr));

try {
Class.forName("com.mysql.cj.jdbc.Driver"); //加载驱动程序
Connection conn = DriverManager.getConnection( //链接数据库
"jdbc:mysql://112.125.95.197:3306/java",
"java", "Aa316216");//建立数据库连接
Statement sta = conn.createStatement(); //用sta执行SQL语句


String select = "select * from stu where name = '"+ arr[1] +
"' and ID = '"+ arr[0] +"';";
System.out.println(arr[0] + arr[1]);

ResultSet rs = 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);

new newf().stuText(nameList,stuClassList,IDList,sexList,ageList);


} catch (ClassNotFoundException classNotFoundException) {
classNotFoundException.printStackTrace();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}

}


我怕我这个菜鸟说不懂,
本来想把全部代码贴出来了,结果发现字数不够了
求大佬们解惑!
...全文
2425 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_46017755 2020-12-15
  • 打赏
  • 举报
回复
已经解决谢谢,传的值不是静态,静态就好使好了,为啥静态可以用?不是静态能获取到也用不了?
KeepSayingNo 2020-12-03
  • 打赏
  • 举报
回复
你看看是不是那个文本框的问题,是否是disable或者其他什么原因

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧