【发布时间】:2013-04-03 23:30:48
【问题描述】:
我对 Java 比较陌生,最近我一直在研究基于 GUI 的 html 解析器。 界面很简单,包括:
-
JTextField用于输入搜索词 -
JButtonb1 发起搜索 -
JButtonb2 退出 -
JButtonb3 使用 cmd prmt 在浏览器中显示 URL。
问题出现在 b3 上。 这是一个代码示例:
while (mstyle2.find())
{
String s=mstyle2.group(0);
String pattern = "(?i)(<cite.*?>)(.+?)(</cite>)";
String updated = s.replaceAll(pattern, "$2");
String pattern2 = "(?i)(<b>)(.+?)(</b>)";
String updated2 = updated.replaceAll(pattern2, "$2");
String pattern3 = "(http://)";
boolean c=true;
String updated32 = updated2.replaceAll(pattern3, "");
String pattern32 = "(https://)";
final String updated3 = updated32.replaceAll(pattern32,"");
try {
URL url2 = new URL("http://"+updated3);
URLConnection conne = url2.openConnection();
conne.connect();
} catch (MalformedURLException e) {
c=false;
} catch (IOException e) {
c=false;//checks validity of url
}
if(c) {
Process p=Runtime.getRuntime().exec("cmd /c start http://"+updated3);
}
}
这个想法是只有在按下 b3 时才应该执行以下命令行。否则循环将不会执行,并一直停留在该行,直到按下按钮。
Process p=Runtime.getRuntime().exec("cmd /c start http://"+updated3);
但是,我找不到任何可行的方法来正确实现 ActionListener 方法以使这成为可能。
在我的大多数尝试中,一旦按下 b3,所有链接都会立即打开(因此超出了 b3 的目的),而不是每次点击 b3 时都一个一个打开。
【问题讨论】:
-
"
JButtonb3 使用 cmd prmt 在浏览器中显示 URL。" 请改用Desktop.browse(URI)。它将更加强大(和跨平台)。
标签: java swing html-parsing jbutton actionlistener