首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JComboBox错误

JComboBox错误
EN

Stack Overflow用户
提问于 2013-08-04 23:02:23
回答 3查看 8.9K关注 0票数 5

我试图从“Java编程第9版简介”(第9版,由梁编写)中编译以下程序。关于JComboBox,下面的示例出错了:

代码语言:javascript
复制
import javax.swing.*;

public class GUIComponents
{
    public static void main (String[] args)
    {
        JButton jbtOK = new JButton ("OK");                                             // Creates a button with test OK
        JButton jbtCancel = new JButton ("Cancel");                                 // Creats a cancel button
        JLabel jlblName = new JLabel ("Enter your name: ");                 //  Creates a label with the respective text
        JTextField jtfName = new JTextField ("Type Name Here");     // Creates a text field with the respective text
        JCheckBox jchkBold = new JCheckBox ("Bold");                        // Creates a check boc wth the text bold
        JCheckBox jchkItalic = new JCheckBox ("Italic");
        JRadioButton jrbYellow = new JRadioButton ("Yellow");               // Creates a radio button with text Yellow
        JRadioButton jrbRed = new JRadioButton  ("Red");                        // Creates a radio Button with text Red
        **JComboBox jcboColor = new JComboBox (new String[] {"Freshman", "Sophomore", "Junior", "Senior"});**
        JPanel panel = new JPanel ();                                                           // Creates a panel to group components
        panel.add (jbtOK);                                                                          // Add the OK button to the panel
        panel.add (jbtCancel);                                                                      // Add the Cancel button to the panel
        panel.add (jlblName);                                                                       // Add the lable to the panel
        panel.add (jtfName);
        panel.add (jchkBold);
        panel.add (jchkItalic);
        panel.add (jrbRed);
        panel.add (jrbYellow);
        panel.add (jcboColor);

        JFrame frame = new JFrame ();
        frame.add (panel);
        frame.setTitle ("Show GUI Components");
        frame.setSize (450,100);
        frame.setLocation (200, 100);
        frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        frame.setVisible (true);
     }
}

正在产生的错误是:

代码语言:javascript
复制
warning: [unchecked] unchecked call to JComboBox(E[]) as  a member of the raw type JComboBox
    JcomboBox jcboColor = new JComboBox(new String[] {"Freshman", "Sophomore", "Junior", "Senior"});

Where E is a time-variable: 
    E extends Object Declared in class JComboBox
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-04 23:05:32

这是警告而不是错误。您缺少了JComboBox所期望的泛型类型,这是Java1.7中引入的。没有它,每次从ComboBoxModel检索值时都需要强制转换,将String类型添加到声明中,以匹配模型数据。

代码语言:javascript
复制
JComboBox<String> jcboColor = new JComboBox<>(new String[] { ... });

从Generics中阅读这篇有趣的文章什么是“未经检查”的警告?

票数 15
EN

Stack Overflow用户

发布于 2019-10-18 10:24:27

到目前为止,Oracle在其Swing教程中提供了以下内容:

https://docs.oracle.com/javase/tutorial/uiswing/examples/layout/CardLayoutDemoProject/src/layout/CardLayoutDemo.java

运行此操作将导致以下行抛出此警告:

代码语言:javascript
复制
JComboBox cb = new JComboBox(comboBoxItems);

可能是因为代码自2008年以来就没有更新过?这个解决方案帮助我清理了警告并顺利编译,所以很有价值。

票数 0
EN

Stack Overflow用户

发布于 2020-02-13 12:17:22

这是一种警告,而不是imageComboBox = new JComboBox( names );造成的错误。

再运行一次程序,它就能正常工作了。

下面是运行的映像

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18048472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档