我正在创建一个项目,该项目具有一个搜索机制,可以通过Mysql
搜索数据,并假设我正在搜索一个用户表。我有一个jlistbox
和一个jTextfield
。用户在jTextfield上输入要搜索的数据。还有一个jTextArea
,用于存储用户选择的值。用户单击列表的值后,便立即从列表中删除该值,并将其放入通用的vector
中,然后该通用vector
循环通过jTextArea
以将值附加到value changed
中。这在列表框的private void li1ValueChanged(javax.swing.event.ListSelectionEvent evt) {
String user = li1.getSelectedValue();
if (user != null) {
universalvector.addElement(user);
ta1.setText("Selected Users:");
String[] arr = universalvector.toArray(new String[universalvector.size()]); //converting vector to array
for (int i = 0; i < arr.length; i++) {
ta1.append("\n" + arr[i]);
}
t3.setText("");
execute("delete from utemp where name='"+user+"'");
MoveToList();
}
// TODO add your handling code here:
}
属性中发生。这是代码
execute()
其中MoveToList()
是一种在Mysql中执行sql查询的方法。 li1
是一种将值从utemp(临时用户表)移动到列表框Mysql
现在,它现在仅在搜索栏中显示li1
中utemp表中满足列表框 private void t3KeyReleased(java.awt.event.KeyEvent evt) {
try {
Class.forName("java.sql.Driver");
Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/user?zeroDateTimeBehavior=convertToNull", "root", "1234");
String string = t3.getText();
PreparedStatement pst = conn.prepareStatement("select * from utemp where name like '" + string + "%'");
ResultSet rs = pst.executeQuery();
DefaultListModel dlm = new DefaultListModel();
while (rs.next()) {
dlm.addElement("" + rs.getString("name"));
}
li1.setModel(dlm);
li1.setSelectedIndex(0); //<--This is what i am having problem with
conn.close();
rs.close();
pst.close();
} catch (Exception e) {
}
// TODO add your handling code here:
}
中搜索条件的值。这是代码。
li1.setSelectedIndex()
现在,我想在用户搜索内容时将列表框的颜色更改为蓝色,其中索引为0,并且当用户按Enter键时,应将blued out值添加到“ Selected Users”列表中我尝试使用value changed
来执行此操作,但它触发了列表的value changed
属性。
有什么方法可以做到而又不会触发ListCellRenderer
的反对吗?
P.S。
我非常希望使用不包括使用 import com.google.gson.Gson
case class Request(command_type: String, sub_commands:
java.util.ArrayList[Command])
new Gson().toJson(new Request("Command", subCommands))
的方法。
谢谢