錄入資料的 輸入框 與 點擊右側集合串列向輸入框 顯示具體資訊 是共用的,
錄入資訊好使, 點擊串列 就更新 輸入框了,
明明構造方法傳入了值,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();
}
}
}
我怕我這個菜鳥說不懂,
本來想把全部代碼貼出來了,結果發現字數不夠了
,求大佬們解惑!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/228537.html
標籤:Java相關
上一篇:java 使用Arraylist 給出一行數字,直到讀到回車,然后列印輸出
下一篇:電腦
