2013-04-03 31 views
0

直接從Oracle的Java教程中複製並粘貼此代碼的內部框架: (註釋是Oracle的,不是我的)。標記錯誤位置w /註釋右邊空白處出現「Error here」。計算機說MyInternalFrame「無法解析鍵入」。MyInternalFrame無法解析爲類型

package components; 

import javax.swing.JInternalFrame; 
import javax.swing.JDesktopPane; 
import javax.swing.JMenu; 
import javax.swing.JMenuItem; 
import javax.swing.JMenuBar; 
import javax.swing.JFrame; 
import javax.swing.KeyStroke; 

import java.awt.event.*; 
import java.awt.*; 

public class InternalFrameDemo extends JFrame 
       implements ActionListener { 

    JDesktopPane desktop; 


    public InternalFrameDemo() { 
     super("InternalFrameDemo"); 

     //Make the big window be indented 50 pixels from each edge 
     //of the screen. 
     int inset = 50; 
     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
     setBounds(inset, inset, 
        screenSize.width - inset*2, 
        screenSize.height - inset*2); 

     //Set up the GUI. 
     desktop = new JDesktopPane(); //a specialized layered pane 
     createFrame(); //create first "window" 
     setContentPane(desktop); 
     setJMenuBar(createMenuBar()); 

     //Make dragging a little faster but perhaps uglier. 
     desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE); 
    } 

    protected JMenuBar createMenuBar() { 
     JMenuBar menuBar = new JMenuBar(); 

     //Set up the lone menu. 
     JMenu menu = new JMenu("Document"); 
     menu.setMnemonic(KeyEvent.VK_D); 
     menuBar.add(menu); 

     //Set up the first menu item. 
     JMenuItem menuItem = new JMenuItem("New"); 
     menuItem.setMnemonic(KeyEvent.VK_N); 
     menuItem.setAccelerator(KeyStroke.getKeyStroke(
       KeyEvent.VK_N, ActionEvent.ALT_MASK)); 
     menuItem.setActionCommand("new"); 
     menuItem.addActionListener(this); 
     menu.add(menuItem); 

     //Set up the second menu item. 
     menuItem = new JMenuItem("Quit"); 
     menuItem.setMnemonic(KeyEvent.VK_Q); 
     menuItem.setAccelerator(KeyStroke.getKeyStroke(
       KeyEvent.VK_Q, ActionEvent.ALT_MASK)); 
     menuItem.setActionCommand("quit"); 
     menuItem.addActionListener(this); 
     menu.add(menuItem); 

     return menuBar; 
    } 

    //React to menu selections. 
    public void actionPerformed(ActionEvent e) { 
     if ("new".equals(e.getActionCommand())) { //new 
      createFrame(); 
     } else { //quit 
      quit(); 
     } 
    } 

    //Create a new internal frame. 
    protected void createFrame() { 
     MyInternalFrame frame = new MyInternalFrame(); //Error occurs here// 
     frame.setVisible(true); //necessary as of 1.3 
     desktop.add(frame); 
     try { 
      frame.setSelected(true); 
     } catch (java.beans.PropertyVetoException e) {} 
    } 

    //Quit the application. 
    protected void quit() { 
     System.exit(0); 
    } 

    /** 
    * Create the GUI and show it. For thread safety, 
    * this method should be invoked from the 
    * event-dispatching thread. 
    */ 
    private static void createAndShowGUI() { 
     //Make sure we have nice window decorations. 
     JFrame.setDefaultLookAndFeelDecorated(true); 

     //Create and set up the window. 
     InternalFrameDemo frame = new InternalFrameDemo(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     //Display the window. 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     //Schedule a job for the event-dispatching thread: 
     //creating and showing this application's GUI. 
     javax.swing.SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       createAndShowGUI(); 
      } 
     }); 
    } 
} 

回答

1

InternalFrameDemo.javacomments

/* 
* InternalFrameDemo.java requires: 
* MyInternalFrame.java 
*/ 

它說,你需要MyInternalFrame.java這是here。將此文件添加到您的構建路徑。