如何声明 JComboBox?
How do I declare a JComboBox?
我正在创建一个程序来处理下拉列表,但我卡在了 JComboBox 框的声明行,我收到以下错误消息:
此行有多个标记
- 构造函数 JComboBox(String[]) 是
不明确的
- 第 breakpoint:JComboBox 行 [第 25 行] -
J组合框()
无论我如何尝试定义 JComboBox,我都会遇到某种错误。请帮助我。
这是 public class 的代码:
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
public class JComboBox extends JFrame {
private JComboBox box;
private JLabel picture;
private static String[] filename = { "p.png", "i.png" };
private Icon pics[] = { new ImageIcon(getClass().getResource(filename[0])),
new ImageIcon(getClass().getResource(filename[1])) };
public JComboBox() {
super("This is the title");
setLayout(new FlowLayout());
JComboBox box = new JComboBox(filename);
box.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent event) {
if (event.getStateChange() == ItemEvent.SELECTED) {
picture.setIcon(pics[box.getSelectedIndex()]);
}
}
});
add(box);
picture = new JLabel(pics[0]);
add(picture);
}
}
这是主要代码 class:
import javax.swing.*;
public class JComboBox1 extends JFrame {
public static void main(String[] args) {
JComboBox Box = new JComboBox();
Box.setVisible(true);
Box.setSize(400,400);
Box.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
谢谢。
正如@Andy 提到的,您的问题是您的 class 和摆动组件的名称发生了碰撞。如果您绝对必须命名您的 class JComboBox,您将必须通过完全限定名称引用 swing 组件,因此
public class JComboBox extends JFrame {
private javax.swing.JComboBox box;
如果您将鼠标悬停在带有 IDE 的私有实例上,您应该会看到与您在其中创建 JComboBox class 的包相匹配的完全限定名称。省去一些痛苦并重命名您的 class.
我正在创建一个程序来处理下拉列表,但我卡在了 JComboBox 框的声明行,我收到以下错误消息: 此行有多个标记 - 构造函数 JComboBox(String[]) 是 不明确的 - 第 breakpoint:JComboBox 行 [第 25 行] - J组合框() 无论我如何尝试定义 JComboBox,我都会遇到某种错误。请帮助我。
这是 public class 的代码:
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
public class JComboBox extends JFrame {
private JComboBox box;
private JLabel picture;
private static String[] filename = { "p.png", "i.png" };
private Icon pics[] = { new ImageIcon(getClass().getResource(filename[0])),
new ImageIcon(getClass().getResource(filename[1])) };
public JComboBox() {
super("This is the title");
setLayout(new FlowLayout());
JComboBox box = new JComboBox(filename);
box.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent event) {
if (event.getStateChange() == ItemEvent.SELECTED) {
picture.setIcon(pics[box.getSelectedIndex()]);
}
}
});
add(box);
picture = new JLabel(pics[0]);
add(picture);
}
}
这是主要代码 class:
import javax.swing.*;
public class JComboBox1 extends JFrame {
public static void main(String[] args) {
JComboBox Box = new JComboBox();
Box.setVisible(true);
Box.setSize(400,400);
Box.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
谢谢。
正如@Andy 提到的,您的问题是您的 class 和摆动组件的名称发生了碰撞。如果您绝对必须命名您的 class JComboBox,您将必须通过完全限定名称引用 swing 组件,因此
public class JComboBox extends JFrame {
private javax.swing.JComboBox box;
如果您将鼠标悬停在带有 IDE 的私有实例上,您应该会看到与您在其中创建 JComboBox class 的包相匹配的完全限定名称。省去一些痛苦并重命名您的 class.