Test

Aus ProgrammingWiki
Archivierte Version vom 2009-05-08T11:18:44+00:00. Aktuelle Version
6001


<eval> JFrame browser( startingUrl ) {</eval>

   invoke( method, args ) {}
   windowClosing(WindowEvent we) {
       we.getWindow().setVisible(false);
   }
   setPage( url ) {
       try {
         pane.setPage( url );
       } catch(Exception e) {
         statusBar.setText("Error opening page: "+url);
       }
   }
   hyperlinkUpdate( HyperlinkEvent he ) {
       type = he.getEventType();
       if (type == HyperlinkEvent.EventType.ENTERED) {
           pane.setCursor(
               Cursor.getPredefinedCursor( Cursor.HAND_CURSOR) );
           statusBar.setText(he.getURL().toString());
       } else 
           if (type == HyperlinkEvent.EventType.EXITED) {
           pane.setCursor( Cursor.getDefaultCursor() );
           statusBar.setText(" ");
       } else {
           setPage( he.getURL() );
           if (urlField != null)
               urlField.setText(he.getURL().toString());
       }
   }
   frame = new JFrame("Browser");
   frame.setSize(400,300);
   frame.addWindowListener( this );
   urlPanel = new JPanel();
   urlPanel.setLayout(new BorderLayout());
   urlField = new JTextField(startingUrl);
   urlPanel.add(new JLabel("Site: "), BorderLayout.WEST);
   urlPanel.add(urlField, BorderLayout.CENTER);
   statusBar = new JLabel(" ");
   pane = new JEditorPane();
   pane.setEditable(false);
   setPage( startingUrl );
   jsp = new JScrollPane(pane); 
   frame.getContentPane().add(jsp, BorderLayout.CENTER);
   frame.getContentPane().add(urlPanel, BorderLayout.SOUTH);
   frame.getContentPane().add(statusBar, BorderLayout.NORTH);
   // This is the equivalent of an inner class in bsh.
   urlTextHandler() {
       actionPerformed(ActionEvent ae) {
           setPage( ae.getActionCommand() );
       }
       return this;
   }
   urlField.addActionListener( urlTextHandler() );
   pane.addHyperlinkListener( (HyperlinkListener)this );
   frame.show();    
   return frame;

}

browser = browser("http://www.michael-hielscher.de/wiki");