/* * WebPane.java * * Created on den 29 augusti 2001, 19:56 */ package ip1.u2; import javax.swing.JTextArea; import java.awt.event.*; import java.net.URL; import java.net.MalformedURLException; import java.io.*; public class WebPane extends javax.swing.JPanel implements ActionListener{ private javax.swing.JPanel jPanel2; private javax.swing.JTextField jTextField1; private javax.swing.JButton jButton1; private javax.swing.JScrollPane jScrollPane1; protected javax.swing.text.JTextComponent content; //innehållskomponenten private String urlString; // konstruktorn public WebPane() { initWebPane(); //initierar komponenten setUrlString("http://www.dsv.su.se"); //sätter initial webadress } // bestämmer i vilken typ av textkomponent innehållet skall visas protected void initTeatArea() { content = new javax.swing.JTextArea(); content.setEditable(false); } /* 1: kopplar upp sig mot url * 2: hämtar innehållet * 3: visar innehållet i innehållskomponenten */ protected void addContent(String urlString) { try { URL url = new URL(urlString); BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream())); String line = ""; content.setText(line); while((line = br.readLine()) != null) ((JTextArea) content).append(line + '\n'); } catch (IOException e) { content.setText(e.toString()); } } // aktiveras om användaren trycker retur i adressfältet eller trycker på "fetch the web"-knappen public void actionPerformed(ActionEvent e) { addContent(jTextField1.getText()); } // Skapar användargränssnittet private void initWebPane() { jPanel2 = new javax.swing.JPanel(); jTextField1 = new javax.swing.JTextField(); jTextField1.addActionListener(this); jButton1 = new javax.swing.JButton(); jButton1.addActionListener(this); jScrollPane1 = new javax.swing.JScrollPane(); initTeatArea(); // initierar innehållskomponenten setLayout(new java.awt.GridBagLayout()); java.awt.GridBagConstraints gridBagConstraints1; jPanel2.setLayout(new java.awt.GridBagLayout()); java.awt.GridBagConstraints gridBagConstraints2; gridBagConstraints2 = new java.awt.GridBagConstraints(); gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints2.weightx = 1.0; jPanel2.add(jTextField1, gridBagConstraints2); jButton1.setText("Go, fetch the web"); gridBagConstraints2 = new java.awt.GridBagConstraints(); jPanel2.add(jButton1, gridBagConstraints2); gridBagConstraints1 = new java.awt.GridBagConstraints(); gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints1.anchor = java.awt.GridBagConstraints.NORTH; add(jPanel2, gridBagConstraints1); jScrollPane1.setViewportView(content); gridBagConstraints1 = new java.awt.GridBagConstraints(); gridBagConstraints1.gridx = 0; gridBagConstraints1.gridy = 1; gridBagConstraints1.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints1.weightx = 1.0; gridBagConstraints1.weighty = 1.0; add(jScrollPane1, gridBagConstraints1); } /** Getter for property urlString. * @return Value of property urlString. */ public String getUrlString() { return urlString; } /** Setter for property urlString. * @param urlString New value of property urlString. */ public void setUrlString(String urlString) { this.urlString = urlString; jTextField1.setText(urlString); } }