2013-02-05 93 views
2

過去半個小時裏,我一直在爲這個錯誤感到煩惱。 JPanel cannot be resolved to a type但是,我輸入了javax.swing.JPanel;,我看不到導致此問題的另一個原因。我發現沒有幫助好或其他問題。這個問題雖然有趣,但它是來自swing包的所有變量。我嘗試重新添加JRE System Library(我使用eclipse),但這沒有任何幫助。以下是我正在使用的一些代碼;Java - [Var Type]無法解析

import javax.swing.JFrame; 
import javax.swing.JLayeredPane; 
import javax.swing.JMenu; 
import javax.swing.JMenuBar; 
import javax.swing.JMenuItem; 
import javax.swing.JPanel; 
import javax.swing.JPopupMenu; 
import javax.swing.JSeparator; 

public class Workshop { 
    private JFrame window = new JFrame("Meejo WorkShop"); 
    private JLayeredPane lpane = new JLayeredPane(); 
    private JPanel panelBg = new JPanel(); 
    private JPanel panelGame = new JPanel(); 
    private JPanel panelProp = new JPanel(); 
    private JPanel panelWork = new JPanel(); 

是一個問題的例子。所有變量都給出[Var Type] Cannot be resolved to a type的錯誤超過rivate= ne任何想法,爲什麼?如果是這樣,我該如何解決它?謝謝。

編輯:完整的代碼是;

package mj.workshop; 

import java.awt.BorderLayout; 
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.Font; 
import java.awt.Image; 
import java.awt.Toolkit; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 

import javax.swing.JFrame; 
import javax.swing.JLayeredPane; 
import javax.swing.JMenu; 
import javax.swing.JMenuBar; 
import javax.swing.JMenuItem; 
import javax.swing.JPanel; 
import javax.swing.JPopupMenu; 
import javax.swing.JSeparator; 

public class Workshop { 
    private final JFrame window = new JFrame("Meejo WorkShop"); 
    private final JLayeredPane lpane = new JLayeredPane(); 
    private final JPanel panelBg = new JPanel(); 
    private final JPanel panelGame = new JPanel(); 
    private final JPanel panelProp = new JPanel(); 
    private final JPanel panelWork = new JPanel(); 

    private final JMenuBar windowMenu = new JMenuBar(); 
    private final JMenu menuFile = new JMenu("File"); 
    private final JMenu menuEdit = new JMenu("Edit"); 
    private final JMenu menuHelp = new JMenu("Help"); 
    // private JMenu menuTest = new JMenu("Test"); 
    private final JMenuItem menuFileNew = new JMenuItem("New"); 
    private final JMenuItem menuFileSave = new JMenuItem("Save"); 
    private final JMenuItem menuFileSaveAs = new JMenuItem("Save As"); 
    private final JMenuItem menuFileExit = new JMenuItem("Exit"); 
    private final JMenuItem menuEditOptions = new JMenuItem("Options"); 
    // private JMenuItem menuEditRedo = new JMenuItem("Redo"); 
    // private JMenuItem menuEditUndo = new JMenuItem("Undo"); 
    // private JMenuItem menuEditCopy = new JMenuItem("Copy"); 
    // private JMenuItem menuEditCut = new JMenuItem("Cut"); 
    // private JMenuItem menuEditPaste = new JMenuItem("Paste"); 
    // private JMenuItem menuEditInsert_Comment = new 
    // JMenuItem("Insert Comment"); 
    private final JMenuItem menuHelpSupport = new JMenuItem("Support"); 
    private final JMenuItem menuHelpAbout = new JMenuItem("About"); 
    private final JMenuItem menuHelpTips = new JMenuItem("Tips"); 
    private final JPopupMenu menuHelpTipsPopUp = new JPopupMenu("Tips"); 
    // private JMenuItem menuTestStart = new JMenuItem("Start"); 
    // private JMenuItem menuTestPause = new JMenuItem("Pause"); 
    // private JMenuItem menuTestStop = new JMenuItem("Stop"); 

    int xSize, ySize; 

    public Workshop() { 
     window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     Toolkit tk = Toolkit.getDefaultToolkit(); 
     xSize = ((int) tk.getScreenSize().getWidth()); 
     ySize = ((int) tk.getScreenSize().getHeight()); 
     window.setSize(xSize, ySize); 
     xSize = window.getWidth(); 
     ySize = window.getHeight(); 
     Image icon = Toolkit.getDefaultToolkit().getImage("images/icon.png"); 
     window.setIconImage(icon); 
     window.setBackground(Color.WHITE); 
     window.setMinimumSize(new Dimension(600, 450)); 

     setUpMenu(); 

     Thread mainThread = new Thread(); 
     mainThread.start(); 

     window.setPreferredSize(new Dimension(xSize, ySize)); 
     window.setLayout(new BorderLayout()); 
     window.add(lpane, BorderLayout.CENTER); 
     lpane.setBounds(0, 0, 600, 400); 
     panelBg.setBackground(Color.WHITE); 
     panelBg.setBounds(0, 0, xSize, ySize); 
     panelBg.setOpaque(true); 
     panelProp.setBackground(new Color(235, 235, 235)); 
     panelProp.setBounds(0, (int) (Math.round(ySize * 0.20)), 
       (int) (Math.round(xSize * 0.175)), 
       (int) (Math.round(ySize * 0.80))); 
     panelProp.setOpaque(true); 
     panelWork.setBackground(new Color(235, 235, 235)); 
     panelWork.setBounds((int) (Math.round(xSize * 0.825)), 
       (int) (Math.round(ySize * 0.20)), 
       (int) (Math.round(xSize * 0.175)), 
       (int) (Math.round(ySize * 0.80))); 
     panelWork.setOpaque(true); 
     panelGame.setBackground(Color.BLUE); 
     panelGame.setBounds((int) (Math.round(xSize * 0.175)), 
       (int) (Math.round(ySize * 0.20)), 
       (int) (Math.round(xSize * 0.65)), 
       (int) (Math.round(ySize * 0.80))); 
     panelGame.setOpaque(true); 
     lpane.add(panelBg, new Integer(0), 0); 
     lpane.add(panelGame, new Integer(1), 0); 
     lpane.add(panelProp, new Integer(1), 0); 
     lpane.add(panelWork, new Integer(1), 0); 
     window.pack(); 
     window.setVisible(true); 

     while (true) { 
      windowrefresh(); 
     } 

    } 

    public void windowrefresh() { 
     try { 
      Thread.sleep(1000); 
      xSize = window.getWidth(); 
      ySize = window.getHeight(); 
      panelProp.setBounds(0, (int) (Math.round(ySize * 0.20)), 
        (int) (Math.round(xSize * 0.175)), 
        (int) (Math.round(ySize * 0.80))); 
      panelWork.setBounds((int) (Math.round(xSize * 0.825)), 
        (int) (Math.round(ySize * 0.20)), 
        (int) (Math.round(xSize * 0.175)), 
        (int) (Math.round(ySize * 0.80))); 
      panelGame.setBounds((int) (Math.round(xSize * 0.175)), 
        (int) (Math.round(ySize * 0.20)), 
        (int) (Math.round(xSize * 0.65)), 
        (int) (Math.round(ySize * 0.80))); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 

    private void setUpMenu() { 
     menuFileSave.setEnabled(false); 
     menuFileSaveAs.setEnabled(false); 
     menuFile.add(menuFileNew); 
     menuFile.add(menuFileSave); 
     menuFile.add(menuFileSaveAs); 
     menuFile.add(new JSeparator()); 
     menuFile.add(menuFileExit); 
     menuEdit.add(menuEditOptions); 
     // menuEdit.add(menuEditRedo); 
     // menuEdit.add(menuEditUndo); 
     // menuEdit.add(menuEditCopy); 
     // menuEdit.add(menuEditCut); 
     // menuEdit.add(menuEditPaste); 
     // menuEdit.add(menuEditInsert_Comment); 
     menuHelp.add(menuHelpSupport); 
     menuHelp.add(menuHelpAbout); 
     menuHelp.add(new JSeparator()); 
     menuHelp.add(menuHelpTips); 
     // windowTest.add(menuTestStart); 
     // windowTest.add(menuTestPause); 
     // windowTest.add(menuTestStop); 
     windowMenu.add(menuFile); 
     windowMenu.add(menuEdit); 
     windowMenu.add(menuHelp); 
     // windowMenu.add(menuTest); 
     windowMenu.setFont(new Font("Arial", Font.PLAIN, 12)); 
     window.setJMenuBar(windowMenu); 

     menuHelpTips.addMouseListener(new MouseAdapter() { 
      @Override 
      public void mousePressed(MouseEvent evt) { 
       if (evt.isPopupTrigger()) { 
        menuFileSave.setEnabled(true); 
        menuFileSaveAs.setEnabled(true); 
       } 
      } 

      @Override 
      public void mouseReleased(MouseEvent evt) { 
       if (evt.isPopupTrigger()) { 
        menuFileSave.setEnabled(true); 
        menuFileSaveAs.setEnabled(true); 
       } 
      } 
     }); 
    } 
} 
+0

您是否構建了應用程序?也許這個選項被禁用。確保已選中項目 - >自動構建。之後,做一個項目 - >清潔... –

+0

不,他們不需要公開。在eclipse中,什麼庫顯示在項目屬性下?你有什麼看起來不錯 –

+0

也許你的Java安裝被破壞或沒有與Eclipse正確關聯 –

回答

2

正如Brian的評論所暗示的那樣,這只是一個編碼問題。更改爲UTF-8可在修復所有導入後修復所有錯誤。

+1

很高興你知道了! – Brian