ReadServerFile.java// Fig. 28.1: ReadServerFile.java
// Reading a file by opening a connection through a URL.
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
public class ReadServerFile extends JFrame
{
private JTextField enterField; // JTextField to enter site name
private JEditorPane contentsArea; // to display website
// set up GUI
public ReadServerFile()
{
super("Simple Web Browser");
// 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());
}
}
);
add(enterField, BorderLayout.NORTH);
contentsArea = new JEditorPane(); // create contentsArea
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());
}
}
);
add(new JScrollPane(contentsArea), BorderLayout.CENTER);
setSize(400, 300); // set size of window
setVisible(true); // show window
}
// load document
private void getThePage(String location)
{
try // load document and display location
{
contentsArea.setPage(location); // set the page
enterField.setText(location); // set the text
}
catch (IOException ioException)
{
JOptionPane.showMessageDialog(this,
"Error retrieving specified URL", "Bad URL",
JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args)
{
ReadServerFile application = new ReadServerFile();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Maintained by John Loomis, updated Mon Apr 10 15:25:13 2017