📄 sketchframe.java
字号:
// Frame for the Sketcher application
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SketchFrame extends JFrame
implements Constants
{
// Constructor
public SketchFrame(String title)
{
super(title); // Call the base constructor
setJMenuBar(menuBar); // Add the menu bar to the window
JMenu fileMenu = new JMenu("File"); // Create File menu
JMenu elementMenu = new JMenu("Elements"); // Create Elements menu
fileMenu.setMnemonic('F'); // Create shortcut
elementMenu.setMnemonic('E'); // Create shortcut
// We will construct the file pull down menu here using actions...
JMenuItem item; // temporary for items
item = fileMenu.add(newAction = new FileAction("New")); // Add New item
item.setAccelerator(KeyStroke.getKeyStroke('N',Event.CTRL_MASK ));
item = fileMenu.add(openAction = new FileAction("Open")); // Add Open item
item.setAccelerator(KeyStroke.getKeyStroke('O',Event.CTRL_MASK ));
item = fileMenu.add(closeAction = new FileAction("Close")); // Add Close item
fileMenu.addSeparator(); // Add separator
item = fileMenu.add(saveAction = new FileAction("Save")); // Add Save item
item.setAccelerator(KeyStroke.getKeyStroke('S',Event.CTRL_MASK ));
item = fileMenu.add(saveAsAction = new FileAction("Save As...")); // Save As
fileMenu.addSeparator(); // Add separator
item = fileMenu.add(printAction = new FileAction("Print")); // Add Print item
item.setAccelerator(KeyStroke.getKeyStroke('P',Event.CTRL_MASK ));
// We will add the types menu items here using actions...
elementMenu.add(lineAction = new TypeAction("Line", LINE));
elementMenu.add(rectangleAction = new TypeAction("Rectangle",RECTANGLE));
elementMenu.add(circleAction = new TypeAction("Circle", CIRCLE));
elementMenu.add(curveAction = new TypeAction("Curve", CURVE));
elementMenu.addSeparator();
JMenu colorMenu = new JMenu("Color"); // Color sub-menu
elementMenu.add(colorMenu); // Add the sub-menu
// We will add the color menu items here using actions...
colorMenu.add(redAction = new ColorAction("Red", Color.red));
colorMenu.add(yellowAction = new ColorAction("Yellow", Color.yellow));
colorMenu.add(greenAction = new ColorAction("Green", Color.green));
colorMenu.add(blueAction = new ColorAction("Blue", Color.blue));
// Handles color menu items
menuBar.add(fileMenu); // Add the file menu
menuBar.add(elementMenu); // Add the element menu
JButton button = toolBar.add(openAction); // Add toolbar button
button.setBorder(BorderFactory.createRaisedBevelBorder()); // Add button border
getContentPane().add(toolBar, BorderLayout.NORTH); // Add toolbar
}
// We will add inner classes defining action objects here...
// FILE ACTION INNER CLASS
class FileAction extends AbstractAction
{
// Constructor
FileAction(String name)
{
super(name);
}
public void actionPerformed(ActionEvent e)
{
// We will add action code here eventually...
}
}
// TYPE ACTION INNER CLASS
class TypeAction extends AbstractAction
{
TypeAction(String name, int typeID)
{
super(name);
this.typeID = typeID;
}
public void actionPerformed(ActionEvent e)
{
elementType = typeID;
}
private int typeID;
}
// COLOR ACTION INNER CLASS
class ColorAction extends AbstractAction
{
public ColorAction(String name, Color color)
{
super(name);
this.color = color;
}
public void actionPerformed(ActionEvent e)
{
elementColor = color;
// This is temporary - just to show it works
getContentPane().setBackground(color);
}
private Color color;
}
// We will add action objects as members here...
FileAction newAction, openAction, closeAction,
saveAction, saveAsAction, printAction;
// Element type actions
private TypeAction lineAction, rectangleAction,
circleAction, curveAction;
// Element color actions
private ColorAction redAction, yellowAction,
greenAction, blueAction ;
private JMenuBar menuBar = new JMenuBar(); // Window menu bar
private JToolBar toolBar = new JToolBar(); // Toolbar
private Color elementColor = DEFAULT_ELEMENT_COLOR; // Current element color
private int elementType = DEFAULT_ELEMENT_TYPE; // Current element type
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -