如何从textarea获取最近输入的字符串

时间:2015-09-28 11:01:30

标签: java

我必须打开一个窗口,其中包含将从数据库中获取的关键字信息。如果我在textarea中输入关键字,它只会打开一个窗口。我无法打开下一个关键字的窗口。

这是我的编码。

    String str = textArea.getText();

    //Connection con = new DBConnection().connect();  

    Class.forName(driver).newInstance();
    conn = DriverManager.getConnection(url+dbName,userName,password);

    String stm="select url from pingatabl where functn=?";

    PreparedStatement st = conn.prepareStatement(stm);

    st.setString(1, str);

    ResultSet rs = st.executeQuery();

    if (rs.next()) {

    String s = rs.getString(1);

    JFrame f=new JFrame();
    f.setVisible(true);
    f.setSize(500,750);
    JEditorPane jm=new JEditorPane();
    f.add(jm);
    jm.setPage(ClassLoader.getSystemResource(s));
            } else {
    JOptionPane.showMessageDialog(null, "function name not Found");
    }
    }
    catch (Exception ex) {

    System.out.println(ex);
    }

1 个答案:

答案 0 :(得分:0)

  

如果我在textarea中输入关键字,它只会打开一个窗口。我无法打开下一个关键字的窗口。

String str = textArea.getText();

它只打开一个窗口,因为你只有一个字符串。如果您希望字符串中有多个关键字,那么您需要解析每个关键字并分别对每个关键字进行数据库查询。

所以代码可能是这样的:

Connection con = new DBConnection().connect();  
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url+dbName,userName,password);

String[] keywords = textArea.getText().split();

for (String keyword: keywords)
{
    createFrame(conn, keyword);    
}

然后,方法createFrame(...)将创建PreparedStatement,执行查询并构建框架以显示从数据库返回的数据。