import java.awt.FlowLayout;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
public class Ikkuna extends Frame implements ActionListener {
private Frame akkuna;
private TextField osoite;
private Button hae;
private JEditorPane paneeli;
private JScrollPane scrolli;
private JEditorPane tulospaneeli;
private JScrollPane tulosscrolli;
//private Radio tasot;
public Ikkuna() {
akkuna = new Frame("Linkkietsin - Demo");
akkuna.setSize(800,600);
akkuna.setResizable(true);
Panel nakyma = new Panel();
nakyma.setLayout(new BorderLayout());
akkuna.addWindowListener(new SuljeIkkuna());
//akkuna.add(new Label("Anna URL"));
osoite = new TextField("http://", 10);
osoite.setEditable(true);
osoite.addActionListener(this);
akkuna.add(osoite, BorderLayout.NORTH);
/*hae = new Button("Hae");
hae.setSize(10,10);*/
/*akkuna.add(hae, BorderLayout.EAST);*/
akkuna.setVisible(true);
/* tasot = new CheckboxGroup();
akkuna.add (new Checkbox("1", tasot, true), BorderLayout.WEST);
akkuna.add (new Checkbox("2", tasot, false), BorderLayout.WEST);
akkuna.add (new Checkbox("3", tasot, false), BorderLayout.WEST);
akkuna.add (new Checkbox("4", tasot, false), BorderLayout.WEST); */
try
{
URL urli = new URL("http://www.valt.helsinki.fi/staff/terkkila/ohjelmo/help.htm");
// Ensin luodaan URL-olio, sitten
URLConnection yhteys = null;
tulospaneeli = new JEditorPane("text/html", "");
tulospaneeli.setEditable(false);
tulosscrolli = new JScrollPane(tulospaneeli);
tulospaneeli.setText("
Tulokset
");
akkuna.add(tulosscrolli, BorderLayout.WEST);
akkuna.repaint();
yhteys = urli.openConnection(); // URLConnection-olio
// Lopuksi yhdistetään löydetty tietokone ja sen HTML-tiedosto tavuvirtaan,
// josta voidaan lukea
paneeli = new JEditorPane(urli);
paneeli.setContentType("text/html");
paneeli.setEditable(false);
paneeli.setPage(urli);
paneeli.isVisible();
scrolli = new JScrollPane(paneeli);
akkuna.add(scrolli, BorderLayout.CENTER);
// scrolli.setVerticalScrollBar(new JScrollBar());
scrolli.isVisible();
akkuna.repaint();
}
catch(FileNotFoundException e)
{
tulospaneeli.setText("ERROR: "+e);
}
catch(MalformedURLException e)
{
tulospaneeli.setText("ERROR: "+e);
}
catch(UnknownHostException e)
{
tulospaneeli.setText("ERROR: "+e);
}
catch(NoRouteToHostException e)
{
tulospaneeli.setText("ERROR: "+e);
}
catch(ConnectException e)
{
tulospaneeli.setText("ERROR: "+e);
}
catch(IOException e)
{
tulospaneeli.setText("ERROR: "+e);
System.exit(-1);
}
}
class SuljeIkkuna extends WindowAdapter {
public void windowClosing(WindowEvent tapahtuma) {
System.exit(0); // sovelluksen lopetus!
}
public void windowClosed(WindowEvent tapahtuma) {
System.exit(0); // sovelluksen lopetus!
}
}
public void actionPerformed(ActionEvent event) {
String urli;
Object aiheuttaja = event.getSource();
if (aiheuttaja == osoite) {
urli = osoite.getText();
if (urli!=null) {
try { HTMLSivu koe = new HTMLSivu(urli, 0);
tulospaneeli.setText(koe.LueURL());
paneeli.setPage(urli);
akkuna.repaint();
}
catch (Exception e) { tulospaneeli.setText("ERROR: "+e); }
}
}
}
public void AnnaTeksti(String rivi) {
tulospaneeli.setText(rivi);
}
}