用户界面 - Java 编译器 "Unchecked or unsafe operations" 警告与 JComboBox



基本上,我是一个相当初级的Java学生,我必须创建一个包含JComboBox的简单GUI。窗口应该看起来像这样:https://i.stack.imgur.com/aXEMI.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();
    }
}

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

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

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

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

你用的是什么版本的Java ?如果是Java 7,尝试在组合框中使用泛型。就像你用数组列表一样,

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

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

相关内容

  • 没有找到相关文章

最新更新