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

    作者:课课家教育更新于: 2016-02-29 19:48:14

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

      最好的方法是让查找程序一直保持运行,要查找什么东西时只需简单地切换到它,并键入要查找的名字即可。下面这个程序将查找程序作为一个“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,并用它作为要查找的文本)。因此,只要我们键入了足够的字符,使程序能找到与之相符的唯一一条记录,就可以停手了。

课课家教育

未登录