2

基本上我是一个相当初级的 Java 学生,我必须创建一个包含 JComboBox 的简单 GUI。该窗口应该如下所示:http: //i.imgur.com/Jg7j4XD.jpg

当我编译代码(如下所示)时,它会编译,但我在 jGRASP 中收到以下警告:

Note: Lab6.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

这是我的代码。我知道这意味着我必须指定一些涉及数据类型的内容(对吗?),但我认为我已经指定得足够多了。感谢任何能提供帮助的人。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Lab6 extends JFrame
{
    private String[] choices = {"Hello", "Good-Bye"};

    public Lab6()
    {
        super("218 Lab 6");
        setSize(450,200);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setLayout(new BorderLayout());

        JPanel panelNorth = new JPanel();
            panelNorth.add(new JLabel("Welcome Class 218!"));

            JComboBox comboBox = new JComboBox(choices);
            panelNorth.add(comboBox);

            add(panelNorth,BorderLayout.NORTH);
    }

    public static void main(String[] args)
    {
        new Lab6();
    }
}
4

2 回答 2

8

从 Java 7 开始,JComboBox需要泛型来描述它所拥有的数据:

JComboBox<String> comboBox = new JComboBox<>(choices);

不指定这些将产生显示的编译器警告。

于 2013-01-19T20:47:59.247 回答
2

我复制了您的代码并将其直接粘贴到文本文件中,然后使用标准 javac 编译器对其进行了编译,但没有收到警告。但是当我运行它时,窗口中也没有任何显示。

您使用的是什么版本的 Java?如果它的 Java 7 尝试使用带有组合框的泛型。就像使用 ArrayList 一样,

 JComboBox<String> comboBox = new JComboBox<>(choices);

我相信这是从 Java 7 开始的正确方法,如果不是,我肯定有人会纠正我。并且只是为了记录,警告并不意味着您的程序不会运行,它是编译器警告而不是错误,您仍然应该能够运行该程序。

于 2013-01-19T21:01:25.470 回答