//Import av nödvändiga klasser import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.net.*; import java.io.*; /** * IP1 - Uppgift 2a * Ett fristående program med ett grafiskt användargränssnitt som * implementerar en enkel browser. * Informationen på en valfri adress, hämtas och presenteras som * ren text i en text-area. * * @author Blanca Larkeson */ //Klassen ärver av JFrame class Uppgift2a extends JFrame{ private String svar; private JTextField field; private JTextArea ta = new JTextArea(); private String nyadress = "http://www.dsv.su.se"; private String adress = ""; private Uppgift2a up = this; //Konstruktor och placering av fönsterkomponenter Uppgift2a(){ super ("UPPGIFT 2a"); JPanel övre = new JPanel(); övre.setBackground(Color.blue.darker()); JLabel label = new JLabel("URL-adress: "); label.setForeground(Color.yellow); övre.add(label); field = new JTextField(40); field.setText("http://www.dsv.su.se"); field.addActionListener(new L()); övre.add(field); JButton knapp = new JButton(" SEARCH "); Cursor c = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR); knapp.setCursor(c); knapp.addActionListener(new L()); övre.add(knapp); getContentPane().add(övre, BorderLayout.NORTH); addWindowListener(new Close()); if (adress != nyadress){ adress = nyadress; nySida(adress); } JScrollPane scroll = new JScrollPane(ta); ta.setLineWrap(true); ta.setWrapStyleWord(true); ta.setEditable(false); getContentPane().add(scroll); setSize(700, 500); //Fönstrets storlek setLocation(45, 40); //Placering på skärmen show(); } //Metod som hämtar sida på angiven URL-adress public void nySida (String s){ try{ URL url = new URL(s); BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream())); String str = ""; StringBuffer buf = new StringBuffer(); while ((str = br.readLine()) != null){ buf.append(str + "\n"); } svar = buf.toString(); } catch(MalformedURLException mu){ //Felhantering vid "new URL() failed" System.err.println("Error: " +mu); } catch(IOException ie){ //Felhantering vid "openConnection() failed" System.err.println("Error: " +ie); } ta.setText(svar); } //Lyssnare som läser URL-adress och anropar metoden "nySida" class L implements ActionListener{ public void actionPerformed (ActionEvent ae){ up.nySida(field.getText()); } } //Lyssnare som stänger fönster class Close extends WindowAdapter{ public void windowClosing (WindowEvent we){ System.exit(0); } } //Main-metod public static void main(String[] args){ new Uppgift2a(); } }