如何声明JComboBox?

时间:2017-05-10 17:58:43

标签: java swing jcombobox

我正在创建一个使用下拉列表的程序,但是我遇到了JComboBox框的声明,我收到这些错误消息:   此行有多个标记      - 构造函数JComboBox(String [])是      未定义      - 换行符:JComboBox [第25行] -      JComboBox的()   无论我如何尝试定义JComboBox,我都会遇到一些错误。请帮帮我。

以下是公共类的代码:

    import javax.swing.*;
    import java.awt.FlowLayout;
    import java.awt.Font;
    import javax.swing.JFrame;
    import javax.swing.JTextField;
    import javax.swing.JRadioButton;
    import javax.swing.ButtonGroup;
    import java.awt.event.ItemListener;
    import java.awt.event.ItemEvent;

    public class JComboBox extends JFrame {

        private JComboBox box;
        private JLabel picture;

        private static String[] filename = { "p.png", "i.png" };
        private Icon pics[] = { new ImageIcon(getClass().getResource(filename[0])),
                new ImageIcon(getClass().getResource(filename[1])) };

        public JComboBox() {

            super("This is the title");
            setLayout(new FlowLayout());

            JComboBox box = new JComboBox(filename);

            box.addItemListener(new ItemListener() {
                public void itemStateChanged(ItemEvent event) {
                    if (event.getStateChange() == ItemEvent.SELECTED) {
                        picture.setIcon(pics[box.getSelectedIndex()]);
                    }
                }
            });

            add(box);
            picture = new JLabel(pics[0]);
            add(picture);

        }

    }

这是主类的代码:

    import javax.swing.*;

    public class JComboBox1 extends JFrame {

        public static void main(String[] args) {


            JComboBox Box = new JComboBox();
            Box.setVisible(true);
            Box.setSize(400,400);
            Box.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        }

    }

谢谢。

1 个答案:

答案 0 :(得分:0)

你的问题正如@Andy所提到的那样,你的班级名称和挥杆组件发生了碰撞。如果你绝对必须为你的JECboBox类命名,你必须用完全限定的名称来引用swing组件,因此

public class JComboBox extends JFrame {

    private javax.swing.JComboBox box;

如果将鼠标悬停在具有IDE的私有实例上,您应该会看到与您在其中创建JComboBox类的包匹配的完全限定名称。为自己省下一些痛苦并重新命名。