找不到Symbol = new

1 java constructor class jframe

Java在抱怨!

cannot find symbol
symbol  : constructor Bar()
location: class Bar
         JPanel panel = new Bar();
                        ^
Run Code Online (Sandbox Code Playgroud)

问题:为什么我会收到这个错误?......一切似乎都是正确的.

这是编码:

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

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!");

                    }
                });
            }
        });

    }
}
Run Code Online (Sandbox Code Playgroud)

Tof*_*eer 5

问题是你有一个期望JFrame的构造函数:

public Bar(final JFrame frame)
Run Code Online (Sandbox Code Playgroud)

但你关心的是没有参数调用它:

JPanel panel = new Bar();
Run Code Online (Sandbox Code Playgroud)

您需要传递Bar的JFrame实例.