/***************************************************************
File:DrawFrame.java
Function:This purpose of the class is to create the main frame
Ahthor:Lijinping
Date:2002-11-26
****************************************************************/
package cutedraw;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.net.*;
import java.util.*;
import java.util.Vector;
import java.util.LinkedList;
import java.util.Iterator;
import javax.swing.*;
import javax.swing.undo.*;
import java.awt.geom.*;
import java.net.*;
import java.util.LinkedList;
import java.util.Iterator;
import java.io.*;
import java.io.ObjectOutputStream;
import javax.swing.event.*;
public class DrawFrame extends JFrame implements InternalFrameListener
{
private JPanel contentPane;
private JPanel barPane = new JPanel(new BorderLayout());
private JPanel mainPane = new JPanel(new BorderLayout()); // 中间的主pane
private DeskTopPanel deskTopPane = new DeskTopPanel();
private UndoManager undoManager = new UndoManager();
private LinkedList shapes;
private ChildFrame childFrame;
private boolean bFrameCreated;
protected Point startPoint = new Point(0, 0); // the start point
protected Point endPoint = new Point(0, 0); // the end point
protected Point tmpPoint = new Point(0, 0); // the intermedia point
protected boolean bReleased = false;
protected boolean bEntered = false;
protected boolean bPressed = false;
private JToolBar graphToolBar = new JToolBar();
private JToolBar graphBar = new JToolBar();
private JToolBar optionBar = new JToolBar();
private JToggleButton lineButton = new JToggleButton();
private JToggleButton circleButton = new JToggleButton();
private JToggleButton charButton = new JToggleButton();
private JToggleButton rectButton = new JToggleButton();
private JToggleButton ovalButton= new JToggleButton();
private JToggleButton arcButton= new JToggleButton();
private JButton backColorButton = new JButton("背景");
private JButton foreColorButton = new JButton("前景");
/*********************Begin MenuBar*************************/
private JMenuBar mainMenuBar = new JMenuBar();
// file menu
private JMenu jMenuFile = new JMenu();
private JMenuItem jMenuFileNew = new JMenuItem(); // new
private JMenuItem jMenuFileOpen = new JMenuItem(); // open
private JMenuItem jMenuFileSave = new JMenuItem(); // save
private JMenuItem jMenuFileSaveAs = new JMenuItem(); // save as
private JMenuItem jMenuFilePrintPreview = new JMenuItem(); // print preview
private JMenuItem jMenuFilePageSet = new JMenuItem(); // page setting
private JMenuItem jMenuFilePrint = new JMenuItem(); // print
private JMenuItem jMenuFileExit = new JMenuItem(); // exit
// edit menu
private JMenu jMenuEdit = new JMenu();
private JMenuItem jMenuEditUndo = new JMenuItem(); // undo
private JMenuItem jMenuEditRedo = new JMenuItem(); // redo
private JMenuItem jMenuEditCut = new JMenuItem(); // cut
private JMenuItem jMenuEditCopy = new JMenuItem(); // copy
private JMenuItem jMenuEditPaste = new JMenuItem(); // paste
private JMenuItem jMenuEditClearSelect = new JMenuItem(); // clear selected
private JMenuItem jMenuEditSelectAll = new JMenuItem(); // select all
private JMenuItem jMenuEditCopyTo = new JMenuItem(); // copy to
private JMenuItem jMenuEditCopyFrom = new JMenuItem(); // copy from
// view menu
private JMenu jMenuView = new JMenu();
private JMenuItem jMenuViewToolBox = new JMenuItem(); // view tool box
private JMenuItem jMenuViewColorBox = new JMenuItem(); // view color box
private JMenuItem jMenuViewStatusBox = new JMenuItem(); // view status box
private JMenuItem jMenuViewRoomIn = new JMenuItem(); // room in
private JMenuItem jMenuViewRoomOut = new JMenuItem(); // room out
private JMenuItem jMenuViewFullScreen = new JMenuItem(); // full screen
// image menu
private JMenu jMenuImage = new JMenu();
private JMenuItem jMenuImageRotate = new JMenuItem(); // rotate image
private JMenuItem jMenuImageTwist = new JMenuItem(); // twist image
private JMenuItem jMenuImageReColor = new JMenuItem(); // reverse color
private JMenuItem jMenuImageAttribute = new JMenuItem(); // set attribute
private JMenuItem jMenuImageClear = new JMenuItem(); // clear image
private JMenuItem jMenuImageNoTrans = new JMenuItem(); // not transparency
private JMenu jMenuHelp = new JMenu();
private JMenuItem jMenuHelpTopic = new JMenuItem(); // help of topic
private JMenuItem jMenuAboutImage = new JMenuItem(); // help about image
/*********************End MenuBar*************************/
/*********************Begin ToolBar*************************/
private JToolBar mainToolBar = new JToolBar();
private JButton newButton = new JButton();
private JButton openButton = new JButton();
private JButton saveButton = new JButton();
private JButton clearButton = new JButton();
private JButton copyButton = new JButton();
private JButton pasteButton = new JButton();
private JButton helpButton = new JButton();
private JButton undoButton = new JButton();
private JButton redoButton = new JButton();
private ImageIcon newImage = new ImageIcon(cutedraw.DrawFrame.class.getResource("new.gif"));
private ImageIcon openImage = new ImageIcon(cutedraw.DrawFrame.class.getResource("open.gif"));
private ImageIcon saveImage = new ImageIcon(cutedraw.DrawFrame.class.getResource("save.gif"));
private ImageIcon cutImage = new ImageIcon(cutedraw.DrawFrame.class.getResource("cut.gif"));
private ImageIcon copyImage = new ImageIcon(cutedraw.DrawFrame.class.getResource("copy.gif"));
private ImageIcon pasteImage= new ImageIcon(cutedraw.DrawFrame.class.getResource("paste.gif"));
private ImageIcon undoImage= new ImageIcon(cutedraw.DrawFrame.class.getResource("undo.gif"));
private ImageIcon redoImage= new ImageIcon(cutedraw.DrawFrame.class.getResource("redo.gif"));
private ImageIcon helpImage= new ImageIcon(cutedraw.DrawFrame.class.getResource("help.gif"));
/*********************End ToolBar*************************/
/*********************Begin StatusBar*************************/
private JPanel statusPanel = new JPanel(new GridLayout(1,3));
private JLabel statusBar = new JLabel();
private JLabel pointBar = new JLabel();
private BorderLayout borderLayout1 = new BorderLayout();
/***************************End StatusBar*************************/
private ButtonGroup graphButtonGroup = new ButtonGroup();
private ButtonGroup optionButtonGroup = new ButtonGroup();
//Construct the frame
public DrawFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
}
//Component initialization
private void jbInit() throws Exception
{
bFrameCreated = false;
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(800, 600));
this.setTitle("迷你画图板");
jMenuFile.setText("文件");
jMenuFileNew.setText("新建");
jMenuFileNew.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
jMenuFileNew_actionPerformed(e);
}
});
jMenuFileOpen.setText