2010-06-17 5 views
1

자바가 불평하고 있습니다!Symbol = new를 찾을 수 없습니다.

cannot find symbol 
symbol : constructor Bar() 
location: class Bar 
     JPanel panel = new Bar(); 
         ^

질문 :이 오류가 발생하는 이유는 무엇입니까? ... 모든 것이 올바른 것으로 보입니다.

public Bar(final JFrame frame) 

하지만 상관 : 문제는 당신이 JFrame의를 예상하는 생성자를 가지고있다

public class JFrameWithPanel 
    { 
     public static void main(String[] args) 
     { 
      JPanel panel = new Bar(); 
     } 
    } 

바()

public class Bar extends JPanel 
{ 
    public Bar(final JFrame frame) 
    { 
     super(new BorderLayout()); 
     String[] tests = { "A+ Certification", "Network+ Certification", "Security+ Certification", "CIT Full Test Package" }; 
     JComboBox comboBox = new JComboBox(tests); 
     TextArea text = new TextArea(5, 10); 
     add(new JLabel("Welcome to the CIT Test Program ")); 
     add(new JLabel("Please select which Test Package from the list below.")); 

     JMenuBar menuBar = new JMenuBar(); 
     JMenu fileMenu = new JMenu("File"); 
     JMenu editMenu = new JMenu("Edit"); 
     JMenu helpMenu = new JMenu("Help"); 
     menuBar.add(fileMenu); 
     menuBar.add(editMenu); 
     menuBar.add(helpMenu); 
     JMenuItem newMenu = new JMenuItem("New (Ctrl+N)"); 
     JMenuItem openMenu = new JMenuItem("Open (Ctrl+O)"); 
     JMenuItem saveMenu = new JMenuItem("Save (Ctrl+S)"); 
     JMenuItem exitMenu = new JMenuItem("Exit (Ctrl+W)"); 
     JMenuItem cutMenu = new JMenuItem("Cut (Ctrl+X)"); 
     JMenuItem copyMenu = new JMenuItem("Copy (Ctrl+C)"); 
     JMenuItem pasteMenu = new JMenuItem("Paste (Ctrl+V)"); 
     JMenuItem infoMenu = new JMenuItem("Help (Ctrl+H)"); 
     fileMenu.add(newMenu); 
     fileMenu.add(openMenu); 
     fileMenu.add(saveMenu); 
     fileMenu.add(exitMenu); 
     editMenu.add(cutMenu); 
     editMenu.add(copyMenu); 
     editMenu.add(pasteMenu); 
     helpMenu.add(infoMenu); 
     this.add(comboBox, BorderLayout.NORTH); 
     this.add(text, BorderLayout.SOUTH); 
     frame.setJMenuBar(menuBar); 
     add(new JButton("Select") 
     { 
      { 
       addActionListener(new ActionListener() { 
        public void actionPerformed(ActionEvent e) { 
         frame.dispose(); 
         JOptionPane.showMessageDialog(frame, "IT WORKS!"); 

        } 
       }); 
      } 
     }); 

    } 
} 

답변

5

입니다 :

는 코딩입니다 인수없이 호출 :

JPanel panel = new Bar(); 

Bar를 JFrame의 인스턴스에 전달해야합니다.

+0

나는 그것을 얻지 않는다. 설명해주세요 –

+0

JPanel 패널 = 새 막대 (새 JFrame()); ...하지만 작동하게하려면 더 많이 필요합니다 (컴파일해도됩니다). 프레임을 볼 수 있도록해야합니다. – TofuBeer

+0

좋습니다. 이제는 프레임을 보이게하고 크기를 설정하는 코드를 추가하기 시작합니다.이 새로운 Frame()에는 변수 이름이 정확히 없기 때문에 –

0

Bar() 생성자를 호출하고 있지만 인수 생성자가 없습니다. JFrame 인수를 전달해야합니다.

0

TofuBeer 외에도 eclipse 또는 netbeans와 같은 IDE를 사용하는 것이 좋습니다. 두 가지 예를 들자. 그 IDE는 이미 코드를 타이핑 할 때 이런 종류의 에러를 보여줄 것입니다.