任何想法如何更改Jdrame中按钮点击事件的JEditorPane内部查看的html页面,对不起我是java的新手,所以基本的解释将非常感激。(需要查找内容,其中第1页内容写在这里)
<input type="checkbox" id="h1" class="hide"/>
<input type="checkbox" id="h2" class="hide"/>
<table>
<thead>
<tr>
<th>
<label for="h1">Heading 1</label>
</th>
<th>
<label for="h2">Heading 2</label>
</th>
</tr>
</thead>
<tbody>
<tr>
<td data-attr="h1">
<span class="new hide">New Content 1</span>
<span>Content 1</span>
</td>
<td data-attr="h2">
<span class="new hide">New Content 2</span>
<span>Content 2</span>
</td>
</tr>
<tr>
<td data-attr="h1">
<span class="new hide">New Content 1</span>
<span>Content 1</span>
</td>
<td data-attr="h2">
<span class="new hide">New Content 2</span>
<span>Content 2</span>
</td>
</tr>
</tbody>
</table>
答案 0 :(得分:1)
当事情不起作用时,首先要做的是将代码简化为最简单的显示错误。这段代码中有很多错误我只是在简化过程中删除了。但是从这个工作代码开始,一点一点地改变它,直到它再次中断,然后准备一个错误的MCVE并在这里发布。
在我进入一个有效的例子之前的其他提示。
说了这么多,剩下的问题总结如下:
url = "file:///C:/Users/Chinmay/workspace/project1/src/page1.html";
该属性 不是URL
,而是String
。调用属性url
不会改变它。然后,当调用jep.setPage(url);
时,该方法将假定String
表示File
路径并相应地处理它(或相应地失败)。由于该字符串不代表有效的文件路径,因此它将失败。
以下是仅使用2个按钮和实际网址的工作代码。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.IOException;
import java.net.URL;
public class check1 extends JFrame implements ActionListener {
JEditorPane jep;
JScrollPane scroll;
JPanel p, p1;
JButton b1, b2;
String url;
public check1() {
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
b1 = new JButton("Button 1");
b1.addActionListener(this);
b2 = new JButton("Button 2");
b2.addActionListener(this);
p = new JPanel();
p.setLayout(new FlowLayout());
p1 = new JPanel();
p1.setLayout(new GridLayout(4, 2, 1, 1));
p1.add(b1);
p1.add(b2);
try {
jep = new JEditorPane(
new URL("http://docs.oracle.com/javase/8/docs/api/javax/swing/JFrame.html#constructor.summary"));
} catch (IOException e) {
e.printStackTrace();
}
scroll = new JScrollPane(jep);
setLayout(new BorderLayout());
getContentPane().add(p, BorderLayout.NORTH);
getContentPane().add(p1, BorderLayout.WEST);
getContentPane().add(scroll, BorderLayout.CENTER);
setSize(1000, 800);
setVisible(true);
setLocationRelativeTo(null);
}
public static void main(String args[]) {
new check1().setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(b1)) {
url = "http://docs.oracle.com/javase/8/docs/api/javax/swing/JButton.html#constructor.summary";
} else if (e.getSource().equals(b2)) {
url = "http://docs.oracle.com/javase/8/docs/api/javax/swing/JApplet.html#constructor.summary";
}
try {
jep.setPage(new URL(url));
} catch (IOException e1) {
e1.printStackTrace();
}
}
}