1 import java.awt.*; 2 import java.awt.event.*; 3 import java.applet.*; 4 import javax.swing.*; 5 import java.io.*; 6 import java.net.*; 7 import java.awt.datatransfer.*; 8 9 public class BadApplet extends JApplet { 10 JTabbedPane tabs = new JTabbedPane(); 11 JPanel FileSystemTests = new JPanel(); 12 JPanel NetworkTests = new JPanel(); 13 JPanel EnvironmentTests = new JPanel(); 14 15 JButton writeFileButton = new JButton("Write File"); 16 JButton readFileButton = new JButton("Read File"); 17 JButton connectSocketButton = new JButton("Connect Socket"); 18 JButton frameButton = new JButton("Open Frame Without Warning Tag"); 19 JButton readSystemPropButton = new JButton("Read System Property"); 20 JButton printButton = new JButton("Print"); 21 JButton clipBoardButton = new JButton("Read Clipboard"); 22 23 JTextField writePath = new JTextField( "/amd/ns/root/home/sbarnes/test.txt" ); 24 JTextField readPath = new JTextField("/amd/ns/root/home/sbarnes/test.txt"); 25 JTextField url = new JTextField("URL"); 26 JTextField port = new JTextField("port"); 27 JTextField systemProp = new JTextField("os.name"); 28 JTextField output = new JTextField(); 29 30 //Construct the applet BadApplet()31 public BadApplet() { 32 try { 33 //event handlers ****************************************************** 34 writeFileButton.addActionListener(new java.awt.event.ActionListener() { 35 public void actionPerformed(ActionEvent e) { 36 writeFileButton_actionPerformed(e); 37 } 38 }); 39 readFileButton.addActionListener(new java.awt.event.ActionListener() { 40 public void actionPerformed(ActionEvent e) { 41 readFileButton_actionPerformed(e); 42 } 43 }); 44 connectSocketButton.addActionListener(new java.awt.event.ActionListener() { 45 public void actionPerformed(ActionEvent e) { 46 connectSocketButton_actionPerformed(e); 47 } 48 }); 49 frameButton.addActionListener(new java.awt.event.ActionListener() { 50 public void actionPerformed(ActionEvent e) { 51 frameButton_actionPerformed(e); 52 } 53 }); 54 readSystemPropButton.addActionListener(new java.awt.event.ActionListener() { 55 public void actionPerformed(ActionEvent e) { 56 readSystemPropButton_actionPerformed(e); 57 } 58 }); 59 printButton.addActionListener(new java.awt.event.ActionListener() { 60 public void actionPerformed(ActionEvent e) { 61 printButton_actionPerformed(e); 62 } 63 }); 64 clipBoardButton.addActionListener(new java.awt.event.ActionListener() { 65 public void actionPerformed(ActionEvent e) { 66 clipBoard_actionPerformed(e); 67 } 68 }); 69 70 //do layout *********************************************************** 71 getContentPane().setLayout( new BorderLayout() ); 72 73 FileSystemTests.setLayout( new FlowLayout( FlowLayout.LEFT ) ); 74 FileSystemTests.add( writeFileButton ); 75 FileSystemTests.add( writePath ); 76 FileSystemTests.add( readFileButton ); 77 FileSystemTests.add( readPath ); 78 79 NetworkTests.setLayout( new FlowLayout( FlowLayout.LEFT ) ); 80 NetworkTests.add( connectSocketButton ); 81 NetworkTests.add( url ); 82 NetworkTests.add( port ); 83 84 EnvironmentTests.setLayout( new FlowLayout( FlowLayout.LEFT ) ); 85 EnvironmentTests.add( frameButton ); 86 EnvironmentTests.add( readSystemPropButton ); 87 EnvironmentTests.add( systemProp ); 88 EnvironmentTests.add( printButton ); 89 EnvironmentTests.add( clipBoardButton ); 90 91 tabs.add( FileSystemTests, "File System" ); 92 tabs.add( NetworkTests, "Network" ); 93 tabs.add( EnvironmentTests, "Environment" ); 94 95 this.getContentPane().add( tabs, BorderLayout.CENTER ); 96 this.getContentPane().add( output, BorderLayout.SOUTH ); 97 } 98 catch(Exception e) { 99 e.printStackTrace(); 100 } 101 } 102 paint( Graphics g )103 public void paint( Graphics g ) 104 { 105 System.out.println( "graphics g = " + g ); 106 System.out.println( "clip area = " + g.getClip() ); 107 System.out.println( "bounds of the clip area = " + g.getClipBounds() ); 108 109 super.paint( g ); 110 } 111 112 //Initialize the applet init()113 public void init() {} 114 writeFileButton_actionPerformed(ActionEvent e)115 void writeFileButton_actionPerformed(ActionEvent e) { 116 try{ 117 PrintWriter writer = new PrintWriter(new FileOutputStream(writePath.getText())); 118 writer.println("Here is some text"); 119 writer.close(); 120 output.setText("Write was successful"); 121 } catch (Exception ex){output.setText(ex.getMessage());} 122 } 123 readSystemPropButton_actionPerformed(ActionEvent e)124 void readSystemPropButton_actionPerformed(ActionEvent e) { 125 try{ 126 output.setText(System.getProperty(systemProp.getText())); 127 } catch (Exception ex){output.setText("Error getting prop: " + ex.getMessage());} 128 } 129 readFileButton_actionPerformed(ActionEvent e)130 void readFileButton_actionPerformed(ActionEvent e) { 131 try{ 132 BufferedReader reader = new BufferedReader(new FileReader(readPath.getText())); 133 output.setText("Read was successful: " + reader.readLine()); 134 } catch (Exception ex){output.setText(ex.getMessage());} 135 } 136 connectSocketButton_actionPerformed(ActionEvent e)137 void connectSocketButton_actionPerformed(ActionEvent e) { 138 try{ 139 Integer thePort = new Integer(port.getText()); 140 Socket socket = new Socket(url.getText(), thePort.intValue()); 141 socket.getOutputStream(); 142 output.setText("Socket connection successful"); 143 } catch (Exception ex){output.setText("Socket unsuccessfull: " + ex.getMessage());} 144 } 145 frameButton_actionPerformed(ActionEvent e)146 void frameButton_actionPerformed(ActionEvent e) { 147 JFrame frame = new JFrame("Does this Frame have a warning sign"); 148 frame.setSize(200,200); 149 frame.show(); 150 if (frame.getWarningString() == null) 151 output.setText("No warning string in frame"); 152 else 153 output.setText(frame.getWarningString()); 154 } 155 clipBoard_actionPerformed(ActionEvent e)156 void clipBoard_actionPerformed(ActionEvent e) { 157 try { 158 Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard(); 159 160 Transferable trans = clip.getContents(null); 161 if (trans == null){ 162 output.setText("Clipboard is empty"); 163 return; 164 } 165 output.setText((String)trans.getTransferData(DataFlavor.stringFlavor)); 166 }catch(Exception ex){ex.getMessage();} 167 } 168 printButton_actionPerformed(ActionEvent e)169 void printButton_actionPerformed(ActionEvent e) { 170 try{ 171 JFrame testFrame = new JFrame("test"); 172 testFrame.getContentPane().add(this, BorderLayout.CENTER); 173 PrintJob printer = Toolkit.getDefaultToolkit().getPrintJob(testFrame, "Applet Print Test", null); 174 175 if (printer == null){ 176 output.setText("PrintJob is null"); 177 return; 178 } 179 180 Graphics g = printer.getGraphics(); 181 g.drawString("This is the applet print test", 50, 50); 182 g.dispose(); 183 printer.end(); 184 }catch(Exception ex){ex.getMessage();} 185 } 186 187 //Main method main(String[] args)188 public static void main(String[] args) { 189 BadApplet applet = new BadApplet(); 190 191 JFrame frame = new JFrame(); 192 frame.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE ); 193 frame.setTitle("Applet Frame"); 194 frame.getContentPane().add(applet, BorderLayout.CENTER); 195 frame.setSize(400,320); 196 frame.setVisible(true); 197 198 applet.init(); 199 applet.start(); 200 } 201 202 } 203