f_acme 你好。我这报这样的错是什么原因 java.lang.Error: Do not use com.san.JEditorPaneWebBrowser.setLayout() use com.san.JEditorPaneWebBrowser.getContentPane().setLayout() instead at javax.swing.JFrame.createRootPaneException(JFrame.java:465) at javax.swing.JFrame.setLayout(JFrame.java:531) at com.san.JEditorPaneWebBrowser.<init>(JEditorPaneWebBrowser.java:23) at com.san.JEditorPaneWebBrowser.main(JEditorPaneWebBrowser.java:66) Exception in thread "main"
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.html.*;public class JEditorPaneWebBrowser extends JFrame implements ActionListener,HyperlinkListener
{
private JEditorPane jep=new JEditorPane();
private JLabel label=new JLabel("URL");
private JTextField field=new JTextField(12);
public JEditorPaneWebBrowser()
{
JPanel jp=new JPanel();
jp.setLayout(new BorderLayout());
jp.add(new JLabel("Filename"),BorderLayout.WEST);
jp.add(field,BorderLayout.CENTER);
this.setLayout(new BorderLayout());
this.add(new JScrollPane(jep),BorderLayout.CENTER);
this.add(jp,BorderLayout.NORTH);
jep.setEditable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
field.addActionListener(this);
jep.addHyperlinkListener(this);
setSize(800,600);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
try{
URL url=new URL(field.getText().trim());
jep.setPage(url);
}
catch(IOException ex)
{
System.out.println(ex);
}
}
public void hyperlinkUpdate(HyperlinkEvent e)
{
System.out.println(e.getURL());
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
{
JEditorPane pane = (JEditorPane) e.getSource();
if (e instanceof HTMLFrameHyperlinkEvent)
{
HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent)e;
HTMLDocument doc = (HTMLDocument)pane.getDocument();
doc.processHTMLFrameHyperlinkEvent(evt);
}else{
try {
pane.setPage(e.getURL());
} catch (Throwable t) {
t.printStackTrace();
}
}
}
}
public static void main(String args[])
{
new JEditorPaneWebBrowser();
}
}
java.lang.Error: Do not use com.san.JEditorPaneWebBrowser.setLayout() use com.san.JEditorPaneWebBrowser.getContentPane().setLayout() instead
at javax.swing.JFrame.createRootPaneException(JFrame.java:465)
at javax.swing.JFrame.setLayout(JFrame.java:531)
at com.san.JEditorPaneWebBrowser.<init>(JEditorPaneWebBrowser.java:23)
at com.san.JEditorPaneWebBrowser.main(JEditorPaneWebBrowser.java:66)
Exception in thread "main"
this.add(new JScrollPane(jep),BorderLayout.CENTER);
this.add(jp,BorderLayout.NORTH);这三句都像楼上的仁兄说的那样改一下就对了。