gpt4 book ai didi

java - JComboBox 返回 double 值

转载 作者:行者123 更新时间:2023-11-29 05:12:01 25 4
gpt4 key购买 nike

我开始制作一个小应用程序,要求用户从组合框中选择他们的省份,我向组合框添加了一个 Action 监听器。我想测试 ActionListener,所以我只是让它将选择的内容打印到控制台。出于某种原因,似乎我得到了两次返回组合框的值。例如,我在组合框中选择“Alberta”,控制台将打印“Alberta Alberta”。有人知道为什么会这样吗?

JComboBox comboProv = new JComboBox(provinces);
comboProv.setBounds(40, 79, 137, 24);
contentPane.add(comboProv);
comboProv.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
String selectedProv = (String)comboProv.getSelectedItem();
System.out.print(selectedProv);
}
});

最佳答案

你没有添加一个ActionListener,你添加了一个ItemListener,一个ItemListener会在值改变的时候被通知两次,一次为ItemEvent.DESELECTED 事件和一次 ItemEvent.SELECTED

如果您对选择的更改不感兴趣,只需使用 ActionListener

comboProv.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String selectedProv = (String)comboProv.getSelectedItem();
System.out.print(selectedProv);
}
});

哪个只会被通知一次

避免使用 null 布局,像素完美布局是现代 ui 设计中的一种错觉。影响组件单个尺寸的因素太多,没有一个是您可以控制的。 Swing 旨在与核心的布局管理器一起工作,丢弃这些将导致无穷无尽的问题和问题,您将花费越来越多的时间来尝试纠正

关于java - JComboBox 返回 double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28102709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com