home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / java / ToolExample.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-11-28  |  5.1 KB  |  111 lines

  1. import com.sun.java.swing.AbstractButton;
  2. import com.sun.java.swing.Action;
  3. import com.sun.java.swing.JApplet;
  4. import com.sun.java.swing.JButton;
  5. import com.sun.java.swing.JComponent;
  6. import com.sun.java.swing.JEditorPane;
  7. import com.sun.java.swing.JPanel;
  8. import com.sun.java.swing.JScrollPane;
  9. import com.sun.java.swing.JToolBar;
  10. import com.sun.java.swing.preview.JColorChooser;
  11. import com.sun.java.swing.text.BadLocationException;
  12. import com.sun.java.swing.text.EditorKit;
  13. import com.sun.java.swing.text.JTextComponent;
  14. import java.applet.Applet;
  15. import java.awt.BorderLayout;
  16. import java.awt.Color;
  17. import java.awt.Container;
  18. import java.awt.event.ActionEvent;
  19. import java.awt.event.ActionListener;
  20. import java.io.BufferedInputStream;
  21. import java.io.DataInputStream;
  22. import java.io.IOException;
  23. import java.net.URL;
  24. import java.util.Hashtable;
  25.  
  26. public class ToolExample extends JApplet implements ActionListener {
  27.    private JPanel pan1;
  28.    private JEditorPane edRTF;
  29.    private EditorKit ekRTF;
  30.    private JToolBar toolMain;
  31.    private JButton btnChange;
  32.  
  33.    public void init() {
  34.       this.pan1 = new JPanel();
  35.       this.pan1.setLayout(new BorderLayout());
  36.       this.edRTF = this.addEditor(this.pan1, "test.rtf");
  37.       Hashtable var1 = this.getActions(this.edRTF);
  38.       this.toolMain = new JToolBar();
  39.       this.addToolButton(this.toolMain, "B", "Bold", "font-bold", var1);
  40.       this.addToolButton(this.toolMain, "I", "Italic", "font-italic", var1);
  41.       this.addToolButton(this.toolMain, "10", "10 pt", "font-size-10", var1);
  42.       this.addToolButton(this.toolMain, "12", "12 pt", "font-size-12", var1);
  43.       this.addToolButton(this.toolMain, "14", "14 pt", "font-size-14", var1);
  44.       this.addToolButton(this.toolMain, "16", "16 pt", "font-size-16", var1);
  45.       this.addToolButton(this.toolMain, "18", "18 pt", "font-size-18", var1);
  46.       this.addToolButton(this.toolMain, "<", "Left justify", "left-justify", var1);
  47.       this.addToolButton(this.toolMain, ">", "Right justify", "right-justify", var1);
  48.       this.btnChange = new JButton("Colour");
  49.       this.btnChange.addActionListener(this);
  50.       this.btnChange.setToolTipText("Change background");
  51.       this.toolMain.add(this.btnChange);
  52.       this.pan1.add(this.toolMain, "North");
  53.       ((JApplet)this).getContentPane().add(this.pan1);
  54.    }
  55.  
  56.    private JEditorPane addEditor(JPanel var1, String var2) {
  57.       JEditorPane var3 = new JEditorPane();
  58.       EditorKit var4 = var3.getEditorKitForContentType("application/rtf");
  59.       var3.setEditorKit(var4);
  60.       ((JTextComponent)var3).setEditable(true);
  61.  
  62.       try {
  63.          var4.read(this.openDataFile(var2), ((JTextComponent)var3).getDocument(), 0);
  64.       } catch (BadLocationException var6) {
  65.          System.err.println("Start position in doc doesn't exist: " + var6);
  66.       } catch (IOException var7) {
  67.          System.err.println("Can't open file: " + var2 + var7);
  68.       }
  69.  
  70.       ((Container)var1).add(new JScrollPane(var3), "Center");
  71.       return var3;
  72.    }
  73.  
  74.    private Hashtable getActions(JEditorPane var1) {
  75.       EditorKit var2 = var1.getEditorKit();
  76.       Action[] var3 = var2.getActions();
  77.       Hashtable var4 = new Hashtable();
  78.  
  79.       for(int var5 = 0; var5 < var3.length; ++var5) {
  80.          var4.put(var3[var5].getValue("Name"), var3[var5]);
  81.       }
  82.  
  83.       return var4;
  84.    }
  85.  
  86.    private void addToolButton(JToolBar var1, String var2, String var3, String var4, Hashtable var5) {
  87.       JButton var6 = new JButton(var2);
  88.       ((JComponent)var6).setToolTipText(var3);
  89.       ((AbstractButton)var6).addActionListener((Action)var5.get(var4));
  90.       ((Container)var1).add(var6);
  91.    }
  92.  
  93.    public void actionPerformed(ActionEvent var1) {
  94.       this.edRTF.setBackground(JColorChooser.showDialog(this, "ToolExample's colour chooser", Color.white));
  95.       this.edRTF.repaint();
  96.    }
  97.  
  98.    private DataInputStream openDataFile(String var1) {
  99.       DataInputStream var3 = null;
  100.  
  101.       try {
  102.          URL var2 = new URL(((Applet)this).getDocumentBase(), var1);
  103.          var3 = new DataInputStream(new BufferedInputStream(var2.openStream()));
  104.       } catch (IOException var5) {
  105.          System.err.println("Cannot open " + var1 + ": " + ((Throwable)var5).getMessage());
  106.       }
  107.  
  108.       return var3;
  109.    }
  110. }
  111.