标签: jcombobox

JComboBox选择更改侦听器?

无论什么时候做出选择,我都试图让事件发生JComboBox.

我遇到的问题是没有明显的addSelectionListener()方法.

我试过用actionPerformed(),但它永远不会开火.

如果没有超越模型JComboBox,我就没有想法了.

如何获得有关选择更改的通知JComboBox?**

编辑:我要道歉.事实证明我使用了一个行为不端的子类JComboBox,但是我会留下问题,因为你的答案是好的.

java swing jcombobox itemlistener

138
推荐指数
5
解决办法
31万
查看次数

为什么JSeboBox上的getSelectedItem()不是通用的?

Java 7中的JCombobox已经更新为使用泛型 - 我一直认为它有点疏忽,它还没有,所以我很高兴看到这种变化.

但是,当试图以这种方式使用JCombobox时,我意识到我期望使用这些泛型类型的方法仍然只是返回Object.

这究竟是为什么?对我来说,这似乎是一个愚蠢的设计决定.我意识到底层的ListModel有一个通用的getElementAt()方法,所以我会用它来代替 - 但它有点迂回的做法,看起来它可能在JComboBox本身上被改变了.

java generics swing jcombobox java-7

49
推荐指数
1
解决办法
6394
查看次数

为什么JComboBox上的itemStateChanged在更改时被调用两次?

我正在使用带有ItemListener的JComboBox.更改值时,将调用itemStateChanged事件两次.第一个调用,ItemEvent显示所选的原始项目.第二次,它显示用户刚刚选择的项目.这是一些测试人员代码:

public Tester(){

    JComboBox box = new JComboBox();
    box.addItem("One");
    box.addItem("Two");
    box.addItem("Three");
    box.addItem("Four");

    box.addItemListener(new ItemListener(){
        public void itemStateChanged(ItemEvent e){
            System.out.println(e.getItem());
        }
    });

    JFrame frame = new JFrame();
    frame.getContentPane().add(box);
    frame.pack();
    frame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)

因此,当我将组合框从"一"改为"三"时,控制台显示:

One
Three
Run Code Online (Sandbox Code Playgroud)

有没有一种方法我可以使用ItemEvent告诉它,它是第二项(即用户选择的项目)?如果有人可以解释为什么它被调用两次,那也会很好!

谢谢

java swing jcombobox itemlistener

36
推荐指数
5
解决办法
6万
查看次数

从Enum填充Swing JComboBox

我想用一个来填充a java.swing JComboBox的值Enum.

例如

public enum Mood { HAPPY, SAD, AWESOME; }
Run Code Online (Sandbox Code Playgroud)

并将这三个值填充为只读JComboBox.

谢谢!

java enums swing jcombobox

33
推荐指数
2
解决办法
3万
查看次数

如何按值设置所选索引JComboBox

我想通过值而不是索引在JComboBox中设置所选索引.怎么做?例

public class ComboItem {

    private String value;
    private String label;

    public ComboItem(String value, String label) {
        this.value = value;
        this.label = label;
    }

    public String getValue() {
        return this.value;
    }

    public String getLabel() {
        return this.label;
    }

    @Override
    public String toString() {
        return label;
    }
}

JComboBox test = new JComboBox();
test.addItem(new ComboItem(0, "orange"));
test.addItem(new ComboItem(1, "pear"));
test.addItem(new ComboItem(2, "apple"));
test.addItem(new ComboItem(3, "banana"));
test.setSelectedItem("banana");
Run Code Online (Sandbox Code Playgroud)

好的,我已经修改了一下我的问题.我忘记了我的JComboBox里面有一个自定义项目,这让它变得有点困难.我不能做setSelectedItem,因为我在每个项目中都有一个ComboItem.那么,我怎么做到这一点?

java swing selectedindex jcombobox

26
推荐指数
5
解决办法
17万
查看次数

动态更改JComboBox

我成功地从数据库中获取数据值.我还将它们存储在一个String[]数组中.我需要加载String数组作为JComboBox响应key action执行的项目.JComboBox如果取出的键取决于按下的键,如何重新加载按键的项目.相反,我需要动态刷新JComboBox项目.

java swing jcombobox

22
推荐指数
3
解决办法
4万
查看次数

如何使用ArrayList填充JComboBox?

我需要使用ArrayList填充JComboBox.有没有办法做到这一点?

java swing arraylist jcombobox

21
推荐指数
3
解决办法
12万
查看次数

JComboBox自动完成

如何在VB dot net JComboBox中的Netbeans 7.1中执行可编辑的自动完成ComboBox.我有一个带有列表绑定的组合框,我想通过只键入列表中项目的第一个字母来选择项目,例如,如果列表有kitten,则应该在我键入时选择它ki.

java swing autocomplete jcombobox

20
推荐指数
1
解决办法
4万
查看次数

检查JComboBox中是否已存在某个项目?

除了迭代后者之外,还有一种简单的方法可以检查JComboBox中是否已存在某个项目吗?这就是我想要做的事情:

 Item item = ...;
 boolean exists = false;
 for (int index = 0; index < myComboBox.getItemCount() && !exists; index++) {
   if (item.equals(myComboBox.getItemAt(index)) {
     exists = true;
   }
 }
 if (!exists) {
   myComboBox.addItem(item);
 }
Run Code Online (Sandbox Code Playgroud)

谢谢!

java jcombobox

19
推荐指数
2
解决办法
3万
查看次数

将项添加到JComboBox

我在面板上使用了一个组合框,据我所知,我们只能添加带有文本的项目

    comboBox.addItem('item text');
Run Code Online (Sandbox Code Playgroud)

但有时我需要使用项目和项目文本的一些值,如在html中选择:

    <select><option value="item_value">Item Text</option></select>
Run Code Online (Sandbox Code Playgroud)

有没有办法在组合框项目中设置值和标题?

现在我使用哈希来解决这个问题.

java swing jcombobox

18
推荐指数
1
解决办法
11万
查看次数