package com.borland.samples.text;import java.awt.Graphics;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.dbswing.*;
import java.lang.Math;
import java.io.*;
import javax.swing.text.*;
import javax.swing.event.*;
import javax.swing.JComponent;public class TextEditFrame extends JFrame {
  IntlSwingSupport intlSwingSupport1 = new IntlSwingSupport();
  JPanel contentPane;
  JMenuBar menuBar1 = new JMenuBar();
  JMenu menuFile = new JMenu();
  JMenuItem menuFileExit = new JMenuItem();
  JMenu menuHelp = new JMenu();
  JMenuItem menuHelpAbout = new JMenuItem();
  JToolBar toolBar = new JToolBar();
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  JButton jButton3 = new JButton();
  ImageIcon image1;
  ImageIcon image2;
  ImageIcon image3;
  JLabel statusBar = new JLabel();
  BorderLayout borderLayout1 = new BorderLayout();
  JScrollPane jScrollPane1 = new JScrollPane();
  JMenuItem jMenuItem1 = new JMenuItem();
  JMenuItem jMenuItem2 = new JMenuItem();
  JMenuItem jMenuItem3 = new JMenuItem();
  JMenuItem jMenuItem4 = new JMenuItem();
  FontChooser fontChooser1 = new FontChooser();
  JMenu jMenu1 = new JMenu();
  JMenuItem jMenuItem5 = new JMenuItem();
  JMenuItem jMenuItem6 = new JMenuItem();
  JMenuItem jMenuItem7 = new JMenuItem();
  JFileChooser jFileChooser1 = new JFileChooser();
  String currFileName = null;  // Full path with filename. null means new/untitled.
  boolean dirty = false;
  Document document1;
  DBTextDataBinder dBTextDataBinder1 = new DBTextDataBinder();
  JButton jButton4 = new JButton();
  JButton jButton5 = new JButton();
  JButton jButton6 = new JButton();
  JButton jButton7 = new JButton();// True means modified text.
  Point pts[]=new Point[1000];
  Point ptAnchor,ptDrawTo;
  int ptindex=0;
  boolean bMouseDownFlag = false;
  boolean bMouseUpFlag=false;
  boolean bDrawFlag = false;
  boolean bLineFlag=false;
  boolean bOvalFlag=false;
  boolean bRectFlag=false;
  boolean b3DRectFlag=false;
  boolean bRoundedFlag=false;
  JTextArea jTextArea1 = new JTextArea();  //Construct the frame
  public TextEditFrame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
      updateCaption();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }

解决方案 »

  1.   

    //Component initialization
      private void jbInit() throws Exception  {
        image1 = new ImageIcon(TextEditFrame.class.getResource("openFile.gif"));
        image2 = new ImageIcon(TextEditFrame.class.getResource("closeFile.gif"));
        image3 = new ImageIcon(TextEditFrame.class.getResource("help.gif"));
        contentPane = (JPanel) this.getContentPane();
        document1 = jTextArea1.getDocument();
        contentPane.setLayout(borderLayout1);
        this.setSize(new Dimension(400, 300));
        this.setTitle("Text Editor");
        statusBar.setText(" ");
        menuFile.setText("File");
        menuFileExit.setText("Exit");
        menuFileExit.addActionListener(new TextEditFrame_menuFileExit_ActionAdapter(this));
        menuHelp.setText("Help");
        menuHelpAbout.setText("About");
        jButton1.addActionListener(new TextEditFrame_jButton1_actionAdapter(this));
        jButton1.setToolTipText("Open File");
        jButton1.setText("Freehand");
        jButton1.addMouseMotionListener(new TextEditFrame_jButton1_mouseMotionAdapter(this));
        jButton1.addMouseListener(new TextEditFrame_jButton1_mouseAdapter(this));
        jButton2.addActionListener(new TextEditFrame_jButton2_actionAdapter(this));
        jButton2.setMaximumSize(new Dimension(87, 29));
        jButton2.setToolTipText("Close File");
        jButton2.setText("Line");
        jButton2.addMouseMotionListener(new TextEditFrame_jButton2_mouseMotionAdapter(this));
        jButton2.addMouseListener(new TextEditFrame_jButton2_mouseAdapter(this));
        jButton3.setMnemonic('0');
        jButton3.setText("Oval");
        jButton3.addMouseMotionListener(new TextEditFrame_jButton3_mouseMotionAdapter(this));
        jButton3.addMouseListener(new TextEditFrame_jButton3_mouseAdapter(this));
        jButton3.addActionListener(new TextEditFrame_jButton3_actionAdapter(this));
        jButton3.setMaximumSize(new Dimension(87, 29));
        jButton3.setToolTipText("About");
        jMenuItem1.setText("New");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            jMenuItem1_actionPerformed(e);
          }
        });
        jMenuItem1.addActionListener(new TextEditFrame_jMenuItem1_actionAdapter(this));
        jMenuItem2.setText("Open");
        jMenuItem2.addActionListener(new TextEditFrame_jMenuItem2_actionAdapter(this));
        jMenuItem3.setText("Save");
        jMenuItem3.addActionListener(new TextEditFrame_jMenuItem3_actionAdapter(this));
        jMenuItem4.setText("Save As");
        jMenuItem4.addActionListener(new TextEditFrame_jMenuItem4_actionAdapter(this));
        fontChooser1.setFrame(this);
        fontChooser1.setTitle("Font");
        jMenu1.setText("Edit");
        jMenuItem5.setText("Font");
        jMenuItem5.addActionListener(new TextEditFrame_jMenuItem5_actionAdapter(this));
        jMenuItem6.setText("Foreground Color");
        jMenuItem6.addActionListener(new TextEditFrame_jMenuItem6_actionAdapter(this));
        jMenuItem7.setText("Background Color");
        jMenuItem7.addActionListener(new TextEditFrame_jMenuItem7_actionAdapter(this));
        document1.addDocumentListener(new TextEditFrame_document1_documentAdapter(this));
        //Turn off right-click file Open... menu item.
        dBTextDataBinder1.setEnableFileLoading(false);
        //Turn off right-click file Save... menu item.
        dBTextDataBinder1.setEnableFileSaving(false);
        toolBar.setOrientation(JToolBar.VERTICAL);
        jButton4.setMaximumSize(new Dimension(87, 29));
        jButton4.setText("Rect");
        jButton4.addMouseMotionListener(new TextEditFrame_jButton4_mouseMotionAdapter(this));
        jButton4.addMouseListener(new TextEditFrame_jButton4_mouseAdapter(this));
        jButton4.addActionListener(new TextEditFrame_jButton4_actionAdapter(this));
        jButton5.setMaximumSize(new Dimension(87, 29));
        jButton5.setText("3D Rect");
        jButton5.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
          public void mouseMoved(MouseEvent e) {
            jButton5_mouseMoved(e);
          }
        });
        jButton5.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
          public void mouseDragged(MouseEvent e) {
            jButton5_mouseDragged(e);
          }
        });
        jButton5.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
          public void mouseDragged(MouseEvent e) {
            jButton5_mouseDragged(e);
          }
        });
        jButton5.addMouseMotionListener(new TextEditFrame_jButton5_mouseMotionAdapter(this));
        jButton5.addMouseListener(new TextEditFrame_jButton5_mouseAdapter(this));
        jButton5.addActionListener(new TextEditFrame_jButton5_actionAdapter(this));
        jButton6.setMaximumSize(new Dimension(87, 29));
        jButton6.setText("Rounded");
        jButton6.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
          public void mouseDragged(MouseEvent e) {
            jButton6_mouseDragged(e);
          }
        });
        jButton6.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
          public void mouseMoved(MouseEvent e) {
            jButton6_mouseMoved(e);
          }
        });
        jButton6.addMouseMotionListener(new TextEditFrame_jButton6_mouseMotionAdapter(this));
        jButton6.addMouseListener(new TextEditFrame_jButton6_mouseAdapter(this));
        jButton6.addActionListener(new TextEditFrame_jButton6_actionAdapter(this));
        jButton7.setMaximumSize(new Dimension(87, 29));
        jButton7.setText("Erasure");
        jTextArea1.setText("jTextArea1");
        toolBar.add(jButton1);
        toolBar.add(jButton2);
        toolBar.add(jButton3);
        toolBar.add(jButton4, null);
        toolBar.add(jButton5, null);
        toolBar.add(jButton6, null);
        toolBar.add(jButton7, null);
        menuFile.add(jMenuItem1);
        menuFile.add(jMenuItem2);
        menuFile.add(jMenuItem3);
        menuFile.add(jMenuItem4);
        menuFile.addSeparator();
        menuFile.add(menuFileExit);
        menuHelp.add(menuHelpAbout);
        menuBar1.add(menuFile);
        menuBar1.add(jMenu1);
        menuBar1.add(menuHelp);
        this.setJMenuBar(menuBar1);
        contentPane.add(toolBar,  BorderLayout.WEST);
        contentPane.add(statusBar, BorderLayout.SOUTH);
        contentPane.add(jScrollPane1, BorderLayout.CENTER);
        jScrollPane1.getViewport().add(jTextArea1, null);
        jMenu1.add(jMenuItem5);
        jMenu1.add(jMenuItem6);
        jMenu1.add(jMenuItem7);  }
      

  2.   

    // Handle the File|Open menu or button, invoking okToAbandon and openFile
      // as needed.
      void fileOpen() {
        if (!okToAbandon()) {
          return;
        }
        // Use the OPEN version of the dialog, test return for Approve/Cancel
        if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) {
          // Call openFile to attempt to load the text from file into TextArea
          openFile(jFileChooser1.getSelectedFile().getPath());
        }
        this.repaint();
      }  // Open named file; read text from file into jTextArea1; report to statusBar.
      void openFile(String fileName)  {
        try
        {
          // Open a file of the given name.
          File file = new File(fileName);      // Get the size of the opened file.
          int size = (int)file.length();      // Set to zero a counter for counting the number of
          // characters that have been read from the file.
          int chars_read = 0;      // Create an input reader based on the file, so we can read its data.
          // FileReader handles international character encoding conversions.
          FileReader in = new FileReader(file);      // Create a character array of the size of the file,
          // to use as a data buffer, into which we will read
          // the text data.
          char[] data = new char[size];      // Read all available characters into the buffer.
          while(in.ready()) {
            // Increment the count for each character read,
            // and accumulate them in the data buffer.
            chars_read += in.read(data, chars_read, size - chars_read);
          }
          in.close();