怎么找到java程序_在Java中如何查找程序的GUI版本

最好的方法是让查找程序一直保持运行,要查找什么东西时只需简单地切换到它,并键入要查找的名字即可。下面这个程序将查找程序作为一个“application/applet”创建,且添加了名字自动填写功能,所以不必键入完整的姓,即可看到数据:

48e22f5d6d11ed3ce3456acb3fa1c4d1.png

//: VLookup.java

// GUI version of Lookup.java

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

import java.sql.*;

public class VLookup extends Applet {

String dbUrl = "JDBC:odbc:people";

String user = "";

String password = "";

Statement s;

TextField searchFor = new TextField(20);

Label completion =

new Label(" ");

TextArea results = new TextArea(40, 20);

public void init() {

searchFor.addTextListener(new SearchForL());

Panel p = new Panel();

p.add(new Label("Last name to search for:"));

p.add(searchFor);

p.add(completion);

setLayout(new BorderLayout());

add(p, BorderLayout.NORTH);

add(results, BorderLayout.CENTER);

try {

// Load the driver (registers itself)

Class.forName(

"sun.jdbc.odbc.JdbcOdbcDriver");

Connection c = DriverManager.getConnection(

dbUrl, user, password);

s = c.createStatement();

} catch(Exception e) {

results.setText(e.getMessage());

}

}

class SearchForL implements TextListener {

public void textValueChanged(TextEvent te) {

ResultSet r;

if(searchFor.getText().length() == 0) {

completion.setText("");

results.setText("");

return;

}

try {

// Name completion:

r = s.executeQuery(

"SELECT LAST FROM people.csv people " +

"WHERE (LAST Like '" +

searchFor.getText() +

"%') ORDER BY LAST");

if(r.next())

completion.setText(

r.getString("last"));

r = s.executeQuery(

"SELECT FIRST, LAST, EMAIL " +

"FROM people.csv people " +

"WHERE (LAST='" +

completion.getText() +

"') AND (EMAIL Is Not Null) " +

"ORDER BY FIRST");

} catch(Exception e) {

results.setText(

searchFor.getText() + "\\n");

results.append(e.getMessage());

return;

}

results.setText("");

try {

while(r.next()) {

results.append(

r.getString("Last") + ", "

+ r.getString("fIRST") +

": " + r.getString("EMAIL") + "\\n");

}

} catch(Exception e) {

results.setText(e.getMessage());

}

}

}

public static void main(String[] args) {

VLookup applet = new VLookup();

Frame aFrame = new Frame("Email lookup");

aFrame.addwindowListener(

new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

aFrame.add(applet, BorderLayout.CENTER);

aFrame.setSize(500,200);

applet.init();

applet.start();

aFrame.setVisible(true);

}

} ///:~

数据库的许多逻辑都是相同的,但大家可看到这里添加了一个TextListener,用于监视在TextField(文本字段)的输入。所以只要键入一个新字符,它首先就会试着查找数据库中的“姓”,并显示出与当前输入相符的第一条记录(将其置入completion Label,并用它作为要查找的文本)。因此,只要我们键入了足够的字符,使程序能找到与之相符的唯一一条记录,就可以停手了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值