下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

在Java中如何查找程序的GUI版本

作者:课课家教育     来源: http://www.kokojia.com点击数:1492发布时间: 2016-02-29 20:07:48

标签: java程序java数据库java编程

大神带你学编程,欢迎选课

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

在Java中如何查找程序的GUI版本java程序_java数据库_课课家

  //: 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,并用它作为要查找的文本)。因此,只要我们键入了足够的字符,使程序能找到与之相符的唯一一条记录,就可以停手了。

赞(15)
踩(4)
分享到:
华为认证网络工程师 HCIE直播课视频教程