import java.io.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class TinyBrowser implements ActionListener,HyperlinkListener { static Frame frame = new Frame("Hello, world!"); static JEditorPane browser = new JEditorPane(); static TextField url = new TextField("http://www.yahoo.com/", 60); static Button go = new Button("Go!"); static public void main(String args[]) { JScrollPane editorScrollPane = new JScrollPane(browser); editorScrollPane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); editorScrollPane.setPreferredSize(new Dimension(600,600)); frame.setLayout(new FlowLayout()); frame.add(url); frame.add(go); frame.add(editorScrollPane); TinyBrowser me = new TinyBrowser(); browser.setEditable(false); browser.addHyperlinkListener(me); go.addActionListener(me); go.setActionCommand("go"); frame.setSize(600,600); frame.show(); } public void hyperlinkUpdate(HyperlinkEvent e) { if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { try { browser.setPage(e.getURL()); url.setText(e.getURL()); } catch(IOException ioe) { System.out.println(e.toString()); } } } public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("go")) { try { browser.setPage(url.getText()); } catch(IOException ioe) { System.out.println(ioe.toString()); } frame.repaint(); } } }