Java 带有actionperformed actionlistner的文本字段
我有一个jTextField和一个jLabel。我希望在用户完成键入后,自动将数据从数据库获取到标签Java 带有actionperformed actionlistner的文本字段,java,swing,jdbc,jlabel,jtextfield,Java,Swing,Jdbc,Jlabel,Jtextfield,我有一个jTextField和一个jLabel。我希望在用户完成键入后,自动将数据从数据库获取到标签 subcode_txt.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { Object obj=e.getSource(); if(obj==subcode_txt){ jst=su
subcode_txt.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
Object obj=e.getSource();
if(obj==subcode_txt){
jst=subcode_txt.getText();
try{
rs=st.executeQuery("Select * from facultydtls where sub_code like '"+jst+"'");
rs.next();
faculty_lab.setText(rs.getString("f_name"));
sem_lab.setText(rs.getString("sem"));
subject_lab.setText(rs.getString("sub"));
department_lab.setText(rs.getString("dept"));
rs.close();
}
catch(Exception ewt){
JOptionPane.showMessageDialog(null,"Invalid Subject Code");
}
}
}
});
DocumentListener
比keystener
ActionListener
,当用户点击ENTER时会触发它close
语句应该放在finally
块中DocumentListener
比keystener
ActionListener
,当用户点击ENTER时会触发它close
语句应该放在finally
块中JTextComponents
的文本事件时,使用是首选的方法
数据库查询需要大量资源,应该在外部执行,以防止UI“冻结”。在本章中,请查看如何使用SwingWorker
请注意,为每个DocumentEvent
加载数据可能会向数据库发送大量不必要的请求。有两种可能的解决方案:
- 使用框架(例如-优化加载数据)进行数据缓存
- 虽然与您的要求有些不同,但当用户提供完整的
字符串时,您可以使用load
来加载数据JButton
st.executeQuery("Select * from facultydtls where sub_code like '%" + jst + "%'");
长期来看:
使用PreparedStatement
。它有以下好处:
- 防止SQL注入攻击,特别是在用户可以输入作为SQL查询一部分的字符串的情况下
占位符字符将使用任何必需的字符串引号PreparedStatement
- 在Swing中处理
JTextComponents
的文本事件时,使用
数据库查询需要大量资源,应该在外部执行,以防止UI“冻结”。在本章中,请查看如何使用SwingWorker
请注意,为每个DocumentEvent
加载数据可能会向数据库发送大量不必要的请求。有两种可能的解决方案:
- 使用框架(例如-优化加载数据)进行数据缓存
- 虽然与您的要求有些不同,但当用户提供完整的
字符串时,您可以使用load
来加载数据JButton
st.executeQuery("Select * from facultydtls where sub_code like '%" + jst + "%'");
长期来看:
使用PreparedStatement
。它有以下好处:
- 防止SQL注入攻击,特别是在用户可以输入作为SQL查询一部分的字符串的情况下
占位符字符将使用任何必需的字符串引号PreparedStatement
DocumentListener
。如果您只想在用户点击enter键时做出反应,则需要一个ActionListener
,即使在使用DocumentListener后,我也会遇到同样的问题。你能给我举个与我的问题相关的例子吗……谢谢你,我是用DocumentListner做的。但是每次我输入一个letter@SubratPatnaik文本字段内容的每次更新都会触发DocumentListener
。如果您只想在用户点击enter键时做出反应,则需要一个ActionListener
,即使在使用DocumentListener后,我也会遇到同样的问题。你能给我举个与我的问题相关的例子吗…谢谢You@SubratPatnaik我认为您需要添加SQL通配符。请参阅更新。即使使用DocumentListener,我也有同样的问题。你能给我举个与我的问题相关的例子吗…谢谢你,即使在使用DocumentListener之后,我也有同样的问题。你能给我举个与我的问题相关的例子吗…谢谢You@SubratPatnaik我认为您需要添加SQL通配符。请参阅更新。即使使用DocumentListener,我也有同样的问题。你能给我举个与我的问题相关的例子吗…谢谢你,即使在使用DocumentListener之后,我也有同样的问题。你能给我举个与我的问题相关的例子吗…谢谢