⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sketchframe.java

📁 Java Classic Examples是我买的两本书:《JAVA经典实例》和《java入门经典源代码》里边附送光盘里带的源码
💻 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
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

    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



     // Construct the file pull down menu
    newItem = fileMenu.add("New");                // Add New item
    openItem = fileMenu.add("Open");              // Add Open item
    closeItem = fileMenu.add("Close");            // Add Close item
    fileMenu.addSeparator();                      // Add separator
    saveItem = fileMenu.add("Save");              // Add Save item
    saveAsItem = fileMenu.add("Save As...");      // Add Save As item
    fileMenu.addSeparator();                      // Add separator
    printItem = fileMenu.add("Print");            // Add Print item

      // Add File menu accelerators
    newItem.setAccelerator(KeyStroke.getKeyStroke('N',Event.CTRL_MASK ));
    openItem.setAccelerator(KeyStroke.getKeyStroke('O',Event.CTRL_MASK ));
    saveItem.setAccelerator(KeyStroke.getKeyStroke('S',Event.CTRL_MASK ));
    printItem.setAccelerator(KeyStroke.getKeyStroke('P',Event.CTRL_MASK ));



    // Construct the Element pull down menu
    elementMenu.add(lineItem = new JRadioButtonMenuItem(
                                                       "Line", elementType==LINE));
    elementMenu.add(rectangleItem = new JRadioButtonMenuItem(
                                             "Rectangle", elementType==RECTANGLE));
    elementMenu.add(circleItem = new JRadioButtonMenuItem(
                                                   "Circle", elementType==CIRCLE));
    elementMenu.add(curveItem = new JRadioButtonMenuItem(
                                                     "Curve", elementType==CURVE));

//    elementMenu.add(lineItem = new JRadioButtonMenuItem("Line", true));
//    elementMenu.add(rectangleItem = new JRadioButtonMenuItem("Rectangle", false));
//    elementMenu.add(circleItem = new JRadioButtonMenuItem("Circle", false));
//    elementMenu.add(curveItem = new JRadioButtonMenuItem("Curve", false));

    ButtonGroup types = new ButtonGroup();
    types.add(lineItem);
    types.add(rectangleItem);
    types.add(circleItem);
    types.add(curveItem);

    // Add element type accelerators
    lineItem.setAccelerator(KeyStroke.getKeyStroke('L',Event.CTRL_MASK ));
    rectangleItem.setAccelerator(KeyStroke.getKeyStroke('E',Event.CTRL_MASK ));
    circleItem.setAccelerator(KeyStroke.getKeyStroke('I',Event.CTRL_MASK ));
    curveItem.setAccelerator(KeyStroke.getKeyStroke('V',Event.CTRL_MASK ));



    elementMenu.addSeparator();
    
    //Construct the Colors pull-down menu...
    JMenu colorMenu = new JMenu("Color");         // Color sub-menu
    elementMenu.add(colorMenu);                   // Add the sub-menu
    colorMenu.add(redItem = new JCheckBoxMenuItem(
                                           "Red", elementColor.equals(Color.red)));
    colorMenu.add(yellowItem = new JCheckBoxMenuItem(
                                     "Yellow", elementColor.equals(Color.yellow)));
    colorMenu.add(greenItem = new JCheckBoxMenuItem(
                                       "Green", elementColor.equals(Color.green)));
    colorMenu.add(blueItem = new JCheckBoxMenuItem(
                                         "Blue", elementColor.equals(Color.blue)));

    ButtonGroup colors = new ButtonGroup();     // Color menu items button group
    colors.add(redItem);
    colors.add(yellowItem);
    colors.add(greenItem);
    colors.add(blueItem);

//    JMenu colorMenu = new JMenu("Color");         // Color sub-menu
//    elementMenu.add(colorMenu);                   // Add the sub-menu
//    colorMenu.add(redItem = new JCheckBoxMenuItem("Red", false));
//    colorMenu.add(yellowItem = new JCheckBoxMenuItem("Yellow", false));
//    colorMenu.add(greenItem = new JCheckBoxMenuItem("Green", false));
//    colorMenu.add(blueItem = new JCheckBoxMenuItem("Blue", true));

    // Add element color accelerators
    redItem.setAccelerator(KeyStroke.getKeyStroke('R',Event.CTRL_MASK ));
    yellowItem.setAccelerator(KeyStroke.getKeyStroke('Y',Event.CTRL_MASK ));
    greenItem.setAccelerator(KeyStroke.getKeyStroke('G',Event.CTRL_MASK ));
    blueItem.setAccelerator(KeyStroke.getKeyStroke('B',Event.CTRL_MASK ));

    // Handles element type menu items
    class TypeListener implements ActionListener
    {    
     // Constructor
     TypeListener(int type)
     {  
       this.type = type; 
     }
    
     // Sets the element type
     public void actionPerformed(ActionEvent e)
     {  
       elementType = type;  
     }

     private int type;                       // Store the type for the menu
    }
 
    // Add type menu item listeners
    lineItem.addActionListener(new TypeListener(LINE));
    rectangleItem.addActionListener(new TypeListener(RECTANGLE));
    circleItem.addActionListener(new TypeListener(CIRCLE));
    curveItem.addActionListener(new TypeListener(CURVE));    

    // Handles color menu items
    class ColorListener implements ActionListener
    {
     public ColorListener(Color color)
     {  this.color = color; }

     public void actionPerformed(ActionEvent e)
     {  elementColor = color;  }

      private Color color;
    }
    
    // Add color menu item listeners
    redItem.addActionListener(new ColorListener(Color.red));
    yellowItem.addActionListener(new ColorListener(Color.yellow));
    greenItem.addActionListener(new ColorListener(Color.green));
    blueItem.addActionListener(new ColorListener(Color.blue));
  

    menuBar.add(fileMenu);                        // Add the file menu
    menuBar.add(elementMenu);                     // Add the element menu
    //enableEvents(AWTEvent.WINDOW_EVENT_MASK);     // Enable window events
  }

    // Handle window events
    //protected void processWindowEvent(WindowEvent e) 
    //{
    // if (e.getID() == WindowEvent.WINDOW_CLOSING)
    // {
    //  dispose();                    // Release resources
    //  System.exit(0);               // Exit the program
    // }
    //  super.processWindowEvent(e);    // Pass on the event
    //}

    private JMenuBar menuBar = new JMenuBar();               // Window menu bar
    private Color elementColor = DEFAULT_ELEMENT_COLOR;      // Current element color
    private int elementType = DEFAULT_ELEMENT_TYPE;          // Current element type

    // File menu items
    private JMenuItem newItem,  openItem,   closeItem,
                    saveItem, saveAsItem, printItem;

    // Element menu items
    private JRadioButtonMenuItem lineItem,  rectangleItem, circleItem,  // Types
                               curveItem, textItem;
    private JCheckBoxMenuItem    redItem,   yellowItem,                 // Colors
                               greenItem, blueItem ;  
  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -