Klasse 1 (wird aufgerufen):
Klasse 2:
Im Ausgabefenster wird die Textfläche größer als angewiesen angezeigt und der Text gleich gar nicht.
Java:
import java.awt.FlowLayout;
import javax.swing.*;
import java.awt.Dimension;
import java.awt.event.*;
public class URLFenster extends JFrame
{
private static JTextField textField = null;
private JButton startButton = null;
public URLFenster()
{
setTitle("URL-Eingabe");
setLayout(new FlowLayout());
add(getTextField());
add(getButton());
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static JTextField getTextField()
{
if (textField == null)
{
textField = new JTextField();
textField.setPreferredSize(new Dimension (360, 22));
}
return textField;
}
private JButton getButton()
{
if (startButton == null)
{
startButton = new JButton ("Quellcode anzeigen");
ActionListener actionListener = new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
Ausgabefenster ausgabefenster = new Ausgabefenster();
}
};
startButton.addActionListener(actionListener);
}
return startButton;
}
public static void main(String[] args)
{
URLFenster gui = new URLFenster();
}
}
Java:
import java.net.*;
import java.io.*;
import java.awt.FlowLayout;
import javax.swing.*;
import java.awt.Dimension;
public class Ausgabefenster extends JFrame
{
String URL = URLFenster.getTextField().getText();
private JTextArea textArea = null;
public Ausgabefenster()
{
setTitle("Quellcode");
setLayout(new FlowLayout());
add(getTextArea());
try
{
druckeQuellcode();
}
catch(Exception e)
{
getTextArea().setText("Die URL ist ungültig.\nVersuche, die URL aus deinem Browser zu kopieren.\nSie sollte dann korrekt angegeben sein.");
}
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
private JTextArea getTextArea()
{
textArea = new JTextArea(200, 200);
JScrollPane scrollPane = new JScrollPane(textArea);
textArea.setEditable(false);
return textArea;
}
private void druckeQuellcode() throws Exception
{
URL website = new URL(URLFenster.getTextField().getText());
BufferedReader in = new BufferedReader(
new InputStreamReader(website.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
getTextArea().setText(inputLine);
in.close();
}
}