// ErrorDialog.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ErrorDialog extends JDialog implements ActionListener
{
// Displayed regions of the dialog box:
private JTextArea errorsTextArea;
private JTextField messageField;
public ErrorDialog(JFrame owner,
String title)
{
super(owner, title);
// Active components to display on window:
errorsTextArea = new JTextArea();
errorsTextArea.setEditable(false);
messageField = new JTextField();
messageField.setEditable(false);
JButton closeButton = new JButton(" Close ");
// Arrange components on window:
Container contentPane = getContentPane();
contentPane.add(new JScrollPane(errorsTextArea),
BorderLayout.CENTER);
JPanel southPanel = new JPanel();
contentPane.add(southPanel, BorderLayout.SOUTH);
southPanel.setLayout(new BorderLayout());
southPanel.add(messageField, BorderLayout.CENTER);
southPanel.add(closeButton, BorderLayout.EAST);
// Enable this dialog box to respond to "Close" button:
closeButton.addActionListener(this);
// Routine necessities with JDialog windows:
setSize(600, 200);
setLocation(200, 470);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setVisible(true);
} // constructor
public void actionPerformed(ActionEvent e) { dispose(); }
public void clear() { errorsTextArea.setText(""); }
public void print(String text) { errorsTextArea.append(text); }
public void println(String text)
{
String lineBreak = System.getProperty("line.separator");
errorsTextArea.append(text);
errorsTextArea.append(lineBreak);
} // method println
public void printShortOneLineMessage(String text)
{
messageField.setText(text);
} // method printShortOneLineMessage
} // class ErrorDialog