Web Browser in Java
Web Browser in Java
public class WebBrowser { public static void main(String [] args) { JFrame frame = new EditorPaneFrame(); frame.show(); } } class EditorPaneFrame extends JFrame { private private private private private private JTextField url; JCheckBox editable; JButton loadButton; JButton backButton; JEditorPane editorPane; Stack urlStack = new Stack();
public EditorPaneFrame() { setTitle("Java Web Browser"); setSize(600,400); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); // set up text field and load button for typing in URL url = new JTextField(30); loadButton = new JButton("Load"); loadButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { try { // remember URL for back button urlStack.push(url.getText()); editorPane.setPage(url.getText()); } catch(Exception e) { editorPane.setText("Error: " +e);
} } }); // set up back button and button action backButton = new JButton("Back"); backButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { if(urlStack.size()<=1) return; try { urlStack.pop(); String urlString = (String)urlStack.peek (); url.setText(urlString); editorPane.setPage(urlString); } catch(IOException e) { editorPane.setText("Error : " +e); } } }); editorPane = new JEditorPane(); editorPane.setEditable(false); editorPane.addHyperlinkListener(new HyperlinkListener() { public void hyperlinkUpdate(HyperlinkEvent event) { if(event.getEventType() == HyperlinkEvent.EventT ype.ACTIVATED) { try { urlStack.push(event.getURL().toS tring()); url.setText(event.getURL().toStr ing()); editorPane.setPage(event.getURL( )); } catch(IOException e) { editorPane.setText("Error: " + e ); } } } }); editable = new JCheckBox(); editable.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) {
editorPane.setEditable(editable.isSelected()); } }); Container contentPane = getContentPane(); contentPane.add(new JScrollPane(editorPane), "Center"); JPanel panel = new JPanel(); panel.add(new JLabel("URL")); panel.add(url); panel.add(loadButton); panel.add(backButton); panel.add(new JLabel("Editable")); panel.add(editable); contentPane.add(panel,"South"); } }