JFrame의 버튼 클릭 이벤트에서 JEditorPane 내에서 볼 수있는 html 페이지를 변경하는 방법에 대해 알고 싶습니다. 정말 미안 해요. 기본 설명이 정말 감사하겠습니다. 여기 페이지 1 내용)에 기록된다버튼 클릭시 JEditorPane 내의 html 페이지 변경하기
package test1;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
public class check1 extends JFrame implements ActionListener{
JEditorPane jep;
JScrollPane scroll;
JPanel p,p1;
JButton b,b1,b2,b3;
Dimension d;
String url;
public check1() {
d = new Dimension(500, 1500);
b = new JButton("Click ME");
b.addActionListener(this);
b1 = new JButton("Click ME");
b2 = new JButton("Click ME");
//b2.setBounds(0, 100, 70, 40);
b3 = new JButton("Click ME");
//b3.setBounds(0, 150, 70, 40);
p = new JPanel();
p.setLayout(new FlowLayout());
p.add(b);
p1 = new JPanel();
p1.setLayout(new GridLayout(4, 2, 1, 1));
p1.add(b1,0,0);
p1.add(b2,0,1);
p1.add(b3,2,0);
p1.setVisible(false);
try {
jep = new JEditorPane("file:///C:/Users/Chinmay/workspace/project1/src/page1.html");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
jep.setEditable(true);
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(b))
{
p1.setVisible(true);
}
else if(e.getSource().equals(b1))
{
url ="file:///C:/Users/Chinmay/workspace/project1/src/page.html";
try {
jep.setPage(url);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
else if(e.getSource().equals(b2))
{
url ="file:///C:/Users/Chinmay/workspace/project1/src/page1.html";
try {
jep.setPage(url);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
else if(e.getSource().equals(b3))
{
url ="file:///C:/Users/Chinmay/workspace/project1/src/page2.html";
try {
jep.setPage(url);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
파일 객체를 생성하고 jep.setPage (new file (url) .toURI(). toURL())로 전달한 경우에도 작동하지 않았습니다. 페이지가 변경되지 않습니다. repaint()와 같이 JEditorPane의 내용을 새로 고침하기 위해 someting을 수행해야합니까? 애플릿에서 사용하는 메소드 @AndrewThompson – charle819
애플릿이나 응용 프로그램에서'JEditorPane'을 위해'repaint()'를 호출 할 필요가 없습니다. –
더 나은 도움을 받으려면 [MCVE] 또는 [짧은 내용, 자체 포함, 올바른 예] (http://www.sscce.org/)를 게시하십시오. 이 경우 URL에 실제 웹 페이지를 사용해야합니다. 아무도 시스템에있는 위치에 해당 파일이 없기 때문입니다. –