/* En webbbrowser applet som ska kunna läsa länkar men pga rättigheterna i java bör den endast köra lokalt. */ import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; import java.net.*; import java.io.*; //stöd för applet, har en init metod(som är standard vid applets.) där grafiken deklareras och läggs in JPanel.. public class ABrowser extends JApplet{ private JEditorPane utskrift; private JTextField adress; private boolean aktiv=true; //init metoden beskriven ovan. public void init(){ addKeyListener(new EnterLyssnare()); JPanel ovre=new JPanel(new GridLayout(2,4)); ovre.add(adress=new JTextField("file:///D:/jdk1.3/bin/index.html")); getContentPane().add(ovre, BorderLayout.NORTH); utskrift=new JEditorPane(); utskrift.setEditable(false); getPage(adress.getText().trim()); JScrollPane scroll=new JScrollPane(utskrift); getContentPane().add(scroll, BorderLayout.CENTER); }//init //starta public void start(){ aktiv=true; } /*Denna metod gör egentligen samma sak som Tolking. Om den är aktiv vilket den bör vara så länge proget körs, hämta urladressen(urlen) som vi fick från enterLyssnaren och lägg upp sidan i textarean. och returnera true om den är aktiv annars false. */ public boolean getPage(String urlen){ if(aktiv){ try{ URL url = new URL(urlen); utskrift.setPage(url); } catch (IOException e) { utskrift.setText("protokoll fungerar inte!!!!"); } return true; }//if return false; }//getPage /*HyperlinkListener för att lyssna på när användaren klickar på länkar, följer länkarna tills dom tar slut. Och om länken man klickar på är ett Hyperlänk då ska den nya sidan sättas i textarean utskrift med den fördefinerade metoden setPage som tar url adressen som argument, getURL också fördefat. */ class Tolking implements HyperlinkListener { public void hyperlinkUpdate(HyperlinkEvent he) { if(he.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { try { utskrift.setPage(he.getURL()); } catch (IOException e) { utskrift.setText("protokoll fungerar inte!!!!"); } } } } /*Klass som lyssnar när användaren trycker enter, då ska metoden getPage anropas och addressen i textfältet ska följa med som argument. */ public class EnterLyssnare extends KeyAdapter{ public void keyPressed(KeyEvent e){ int key = e.getKeyCode(); if (key==e.VK_ENTER){ getPage(adress.getText().trim()); } }//keyPressed }//EnterLyssnare public static void main(String[] args){ new ABrowser(); }//main }//ABrowser