import java.awt.*; import java.security.*; import java.util.PropertyPermission; import javax.swing.*; class TextView extends JLabel { public TextView() { super("<html><font color=black>"); setBackground(Color.white); setOpaque(true); setVerticalAlignment(SwingConstants.TOP); setVerticalTextPosition(SwingConstants.TOP); } public void append(String str) { setText(getText() + str); } public void println(String str) { append(str+"<br>"); } } class Info extends JTabbedPane { Info() { TextView view; view = new TextView(); view.append("<h2>System Properties</h2>"); view.println("<p><b>version:</b> " + System.getProperty("java.version") ); view.println("<b>vendor:</b> " + System.getProperty("java.vendor") ); view.println("<b>vendor.url:</b> " + System.getProperty("java.vendor.url") ); addTab("system", view); setSelectedIndex(0); view = new TextView(); view.append("<h2>OS Properties</h2>"); view.println("<b>OS:</b> " + System.getProperty("os.name") ); view.println("<b>OS Arch:</b> " + System.getProperty("os.arch") ); view.println("<b>OS Version:</b> " + System.getProperty("os.version") ); addTab("os",view); view = new TextView(); view.append("<h2>Java Properties</h2>"); try { PropertyPermission p = new PropertyPermission("java.*","read"); AccessController.checkPermission(p); view.println("<b>java home:</b> " + System.getProperty("java.home") ); view.println("<b>class version:</b> " + System.getProperty("java.class.version") ); view.println("<b>class path:</b>" + System.getProperty("java.class.path") ); } catch (java.security.AccessControlException exc) { view.println( exc.getMessage() ); } addTab("java",view); view = new TextView(); view.append("<h2>User Properties</h2>"); try { PropertyPermission p = new PropertyPermission("user.*","read"); AccessController.checkPermission(p); view.println("<b>User:</b> " + System.getProperty("user.name") ); view.println("<b>Home:</b> " + System.getProperty("user.home") ); view.println("<b>Current:</b> " + System.getProperty("user.dir") ); } catch (java.security.AccessControlException exc) { view.println( exc.getMessage() ); } addTab("user",view); Toolkit toolkit = Toolkit.getDefaultToolkit(); view = new TextView(); view.append("<h2>Toolkit</h2>"); view.println("<b>Class name:</b> " + toolkit.getClass().getName() ); view.println("<b>Screen resolution:</b> " + toolkit.getScreenResolution() + " dots/inch" ); Dimension d = toolkit.getScreenSize(); view.println("<b>Screen size:</b> (" + d.width + ", " + d.height + ")" ); view.println("<b>Color model:</b> " + toolkit.getColorModel() ); d = toolkit.getBestCursorSize(-1,-1); view.println("<b>Preferred cursor size:</b> (" + d.width + ", " + d.height + ")" ); addTab("toolkit",view); } } public class SystemInfo extends JApplet { public void init() { getContentPane().add(new Info() ); } public static void main(String args[]) { JFrame frame = new JFrame("System Info"); frame.getContentPane().add(new Info() ); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } }
Maintained by John Loomis, last updated 19 July 2000