Größe: 3968
Kommentar: MiniBrowser.java
|
Größe: 3971
Kommentar:
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 17: | Zeile 17: |
MiniBrowser.java | Mini''''Browser.java |
Java ist nicht nur eine Insel, sondern in den USA ein Synonym für Kaffee - dem Klischee zufolge neben Pizza das Hauptnahrungsmittel aller Programmierer.
Was also liegt näher, als eine Programmiersprache Java zu nennen.
Java wurde v.a. von SUN entwickelt. Java ist rein objektorientiert, im Gegensatz zum ebenfalls objektorientierten C++, das den Paradigmenwechsel von imperativ zu OOP nicht konsequent vollzieht und damit hybrid bleibt.
Java wurde für das Internet entwickelt - ein Webbrowser ist in 99 Zeilen programmiert, Client-Server-Anwendungen wie Chatserver sind im Handumdrehen erstellt.
Syntaktisch ähnelt Java ["C"]. Hacks wie k+=((i=j--)>0) ? 1/j : j funktionieren nach wie vor.
Beim Kompilieren wird ein plattformunabhängiger Bytecode (.class) erzeugt, was im heterogenen WWW wichtig ist. Die Kehrseite: Nicht jede Grafik sieht überall gleich gut aus, vor allem aber leidet die Performanz an der just-in-time-Interpretation dieses Bytecodes. Daher behält C seine daseinsberechtigung bei zeitkritischen und maschinennahen Routinen (Pointerbiegen ist nicht mit Java!).
Weitere Infos gibt es extern en mass, etwa im http://www.javabuch.de/
Zum Ausprobieren:
Mini'Browser.java import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
public class MiniBrowser extends JFrame {
private JTextField enterField;
private JEditorPane contentsArea;
// set up GUI
public MiniBrowser ()
{
super("Simple Web Browser" );
Container container = getContentPane();
// create enterField and register its listener
enterField = new JTextField( "Enter file URL here" );
enterField.addActionListener(
new ActionListener() {
// get document specified by user
public void actionPerformed( ActionEvent event )
{
getThePage( event.getActionCommand() );
}
} // end anonymous inner class
); // end call to addActionListener
container.add( enterField, BorderLayout.NORTH );
// create contentsArea and register HyperlinkEvent listener
contentsArea = new JEditorPane();
contentsArea.setEditable( false );
contentsArea.addHyperlinkListener(
new HyperlinkListener() {
// if user clicked hyperlink, go to specified page
public void hyperlinkUpdate( HyperlinkEvent event )
{
if ( event.getEventType() ==
HyperlinkEvent.EventType.ACTIVATED )
getThePage( event.getURL().toString() );
}
} // end anonymous inner class
); // end call to addHyperlinkListener
container.add( new JScrollPane( contentsArea ),
BorderLayout.CENTER );
setSize( 400, 300 );
setVisible( true );
}
// load document; change mouse cursor to indicate status
private void getThePage( String location )
{
// change mouse cursor to WAIT_CURSOR
setCursor( Cursor.getPredefinedCursor(
Cursor.WAIT_CURSOR ) );
// load document into contentsArea and display location in
// enterField
try {
contentsArea.setPage( location );
enterField.setText( location );
}
// process problems loading document
catch ( IOException ioException ) {
JOptionPane.showMessageDialog( this,
"Error retrieving specified URL",
"Bad URL", JOptionPane.ERROR_MESSAGE );
}
setCursor( Cursor.getPredefinedCursor(
Cursor.DEFAULT_CURSOR ) );
}
// begin application execution
public static void main( String args[] )
{
MiniBrowser browser = new MiniBrowser();
browser.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE );
}
}