I'm trying to create a JPanel that displays webpages. I've gotten to the stage where I can read the webpage, however when I display the page, it looks all muddled up, see below.

Here is the source code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
public class Browser {
private JFrame frame;
private JPanel panelTop;
private JEditorPane editor;
private JScrollPane scroll;
private JTextField field;
private JButton button;
private URL url;
public Browser(String title) {
initComponents();
//set the title of the frame
frame.setTitle(title);
//set the default cloe op of the jframe
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//set size of frame
frame.setSize(800,600);
//add jpanel to north of jframe
frame.add(BorderLayout.NORTH, panelTop);
//add textfield and navigation button to jpanel.
panelTop.add(field);
panelTop.add(button);
//add scroll pane to jframe center
frame.add(BorderLayout.CENTER, scroll);
//set the frame visible
frame.setVisible(true);
}//end Browser() constructor
private void initComponents() {
//create the JFrame
frame = new JFrame();
//create the JPanel used to hold the text field and button.
panelTop = new JPanel();
//set the url
try {
url = new URL("http://www.google.co.uk");
}
catch(MalformedURLException mue) {
JOptionPane.showMessageDialog(null,mue);
}
//create the JEditorPane
try {
editor = new JEditorPane(url);
//set the editor pane to false.
editor.setEditable(false);
}
catch(IOException ioe) {
JOptionPane.showMessageDialog(null,ioe);
}
//create the scroll pane and add the JEditorPane to it.
scroll = new JScrollPane(editor, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//create the JTextField
field = new JTextField();
//set the JTextField text to the url.
//we're not doing this on the event dispatch thread, so we need to use
//SwingUtilities.
SwingUtilities.invokeLater(new Runnable() {
public void run() {
field.setText(url.toString());
}
});
//create the button for chanign pages.
button = new JButton("Go");
//add action listener to the button
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
editor.setPage(field.getText());
}
catch(IOException ioe) {
JOptionPane.showMessageDialog(null, ioe);
}
}
});
}//end initComponents()
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Browser("Simple web browser");
}
});
}//end main method.
}//end Browser class
Is there some methods I am missing that read CSS ande flash etc?
Just because JEditorPane renders old (parts of 3.2) HTML and simple CSS does not make it a browser. It is suitable only for content that you control.
Is there some methods I am missing that read CSS ..
It does support simple styles.
.. flash etc?
Not supported in the default HTML editor kit.
Support for new HTML elements can be added to the editor kit, but you need to supply the component that renders the Flash, ..applet, whatever.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With