基本上我是一个相当开始的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();
}
}
答案 0 :(得分:8)
自Java 7起,JComboBox需要泛型来描述它所拥有的数据:
JComboBox<String> comboBox = new JComboBox<>(choices);
不指定这些将产生显示的编译器警告。
答案 1 :(得分:2)
我复制了你的代码并将其直接粘贴到一个文本文件中,然后用标准的javac编译器编译它,我没有得到警告。但是当我跑步时,窗户上也没有出现任何东西。
您使用的是哪个版本的Java?如果它的Java 7尝试在组合框中使用泛型。就像使用ArrayList一样,
JComboBox<String> comboBox = new JComboBox<>(choices);
我相信这是Java 7的正确方法,如果不是,我很肯定有人会纠正我。并且只是为了记录警告并不意味着你的程序不会运行,它的编译器警告不是错误,你仍然应该能够运行该程序。