/* * MyBrowser * * Version 1.0 * * 20061003 * * Author: Jenny Nordgren */ /** * MyBrowser is a simple webbrowser that displays html source code */ import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.*; import java.io.*; public class MyBrowser extends JFrame implements ActionListener { private JTextField addressField = new JTextField(30); private JTextArea documentArea = new JTextArea(); private JLabel messageLabel = new JLabel(); public MyBrowser() { setDefaultCloseOperation(EXIT_ON_CLOSE); Container con = getContentPane(); con.setLayout(new BorderLayout()); this.setTitle("MyBrowser"); JButton knapp1 = new JButton("Go!"); knapp1.addActionListener(this); JLabel addressFieldLabel = new JLabel("Adress:"); addressField.addActionListener(this); addressField.setEditable(true); documentArea.setEditable(false); JScrollPane scroller = new JScrollPane(documentArea); //scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); JPanel addressPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); addressPanel.add(addressFieldLabel); addressPanel.add(addressField); addressPanel.add(knapp1); messageLabel.setOpaque(true); messageLabel.setBackground(Color.YELLOW); messageLabel.setVisible(false); con.add(addressPanel, BorderLayout.NORTH); con.add(scroller, BorderLayout.CENTER); con.add(messageLabel, BorderLayout.SOUTH); setSize(600, 600); setVisible(true); } /** * actionPerformed är den metod som implementeras från Interfacet ActionListener. Beroende på vilken * knapp användaren trycker på så kan knapparna få ny text, aktiveras eller avaktiveras samt att knapparna * styr de två trådarna som kan påverkas enligt knapptexten. * */ public void actionPerformed(ActionEvent e) { try { messageLabel.setVisible(false); documentArea.setText(""); URL address = new URL(addressField.getText()); if (address.getHost().equals("") || address.getHost().trim().equals("http://")) { throw new MalformedURLException(); } BufferedReader in = new BufferedReader( new InputStreamReader( address.openStream())); String line; while((line = in.readLine()) != null) { documentArea.append(line); documentArea.append("\n"); } documentArea.setCaretPosition(0); } catch (MalformedURLException mue) {messageLabel.setText("Skriv in en korrekt utformad webb-adress!"); messageLabel.setVisible(true); } catch (IOException ioe) {messageLabel.setText("Sidan du vill se kunde inte hittas! Prova med en annan adress!"); messageLabel.setVisible(true); } } public static void main(String args[]) { MyBrowser browser = new MyBrowser(); } }