繁体   English   中英

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

[英]How can I get recently typed string from textarea

我必须打开一个窗口,其中包含将从数据库中获取的关键字信息。 如果我在 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);
    }

如果我在 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,执行查询并构建框架以显示从数据库返回的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM