我试图从“Java编程第9版简介”(第9版,由梁编写)中编译以下程序。关于JComboBox,下面的示例出错了:
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);
}
}正在产生的错误是:
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发布于 2013-08-04 23:05:32
这是警告而不是错误。您缺少了JComboBox所期望的泛型类型,这是Java1.7中引入的。没有它,每次从ComboBoxModel检索值时都需要强制转换,将String类型添加到声明中,以匹配模型数据。
JComboBox<String> jcboColor = new JComboBox<>(new String[] { ... });从Generics中阅读这篇有趣的文章什么是“未经检查”的警告?
发布于 2019-10-18 10:24:27
到目前为止,Oracle在其Swing教程中提供了以下内容:
运行此操作将导致以下行抛出此警告:
JComboBox cb = new JComboBox(comboBoxItems);可能是因为代码自2008年以来就没有更新过?这个解决方案帮助我清理了警告并顺利编译,所以很有价值。
发布于 2020-02-13 12:17:22
https://stackoverflow.com/questions/18048472
复制相似问题