import javax.swing.*; import javax.swing.text.*; import java.awt.*; public class Diagnostic { // Create new new Diagnostic display using a black JTextPane public Diagnostic() { pane = new JTextPane(); pane.setBackground(Color.black); pane.setEditable(false); } // Show an informational message (green, plain text) public void showInfo(String msg) { SimpleAttributeSet attrs = new SimpleAttributeSet(); //StyleConstants.setFontFamily(attrs,"Serif"); //StyleConstants.setFontSize(attrs, 18); StyleConstants.setForeground(attrs, Color.green); showMsg(msg, attrs); } // Show a warning message (yellow, italic text) public void showWarning(String msg) { SimpleAttributeSet attrs = new SimpleAttributeSet(); StyleConstants.setForeground(attrs, Color.yellow); StyleConstants.setItalic(attrs, true); showMsg(msg, attrs); } // Show an error message (red, bold/italic text) public void showError(String msg) { SimpleAttributeSet attrs = new SimpleAttributeSet(); StyleConstants.setForeground(attrs, Color.red); StyleConstants.setItalic(attrs, true); StyleConstants.setBold(attrs, true); showMsg(msg, attrs); } // Return the visual component to be displayed public Component getComponent() { return pane; } // Show a text message using the specified AttributeSet protected void showMsg(String msg, AttributeSet attrs) { Document doc = pane.getDocument(); msg += "\n"; try { doc.insertString(doc.getLength(), msg, attrs); } catch (BadLocationException ex) { ex.printStackTrace(); } } private JTextPane pane; // A sample test program public static void main(String[] args) { Diagnostic diag = new Diagnostic(); JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().add(diag.getComponent()); f.setSize(300,200); f.setVisible(true); // Display a few messages... diag.showInfo("System normal"); diag.showWarning("Disk space low"); diag.showError("Out of memory"); diag.showError("Program performed an illegal operation"); diag.showInfo("System normal"); } }
Maintained by John Loomis, last updated 20 June 2000