gpt4 book ai didi

java - 监听 JComboBoxes 和 JTextFields 来修改激活类突变器

转载 作者:行者123 更新时间:2023-12-02 07:18:48 24 4
gpt4 key购买 nike

我在 Swing GUI 中有一个小形式,一旦对象发生更改,我想向我的类调用一些自定义变体,但我只是不知道如何获取该信息并调用我的变体。这是相关代码,我知道这相对简单,但我就是无法弄清楚。

要在更改或失去焦点时引用名称框的内容,应调用 .setName(String x)当性别框的内容改变或失去焦点时应该调用 .setGender(Boolean x)racebox 的内容在更改或失去焦点时应调用 .setRace(int a),其中 a 是用于构建表单的数组的索引号classbox 的功能与 Racebox 相同

更新:找到了一些我需要的东西,我需要一个项目标签,然后使用 getsource 和 getActioCommand,但是虽然这应该适用于大多数方面,但我仍然有一个小问题,Genderbox 存储一个字符串,但我希望它能够有一个 int 值并且只显示一个字符串是否有一种方法可以使用 j 组合框来分别设置值和显示选项文本?

    JTextField namebox = new JTextField(nala.getName());
namebox.addFocusListener(new FocusListener() {

//Create the combo box for gender.
String[] gender = { "male", "female" };
JComboBox genderBox = new JComboBox(gender);
if (nala.getGender()){genderBox.setSelectedIndex(1);}else{genderBox.setSelectedIndex(0);}
genderBox.addActionListener(this);
genderBox.setActionCommand("GenderBox");

//Create the combo box for race.
String[] cRace = new String[75];
for (int i=0; i<75; i++){cRace[i] = nala.getRaceName(i);}
JComboBox raceBox = new JComboBox(cRace);
raceBox.setSelectedIndex((int)nala.getRace());
raceBox.addActionListener(this);

//Create the combo box for class.
String[] cClass = new String[50];
for (int i=0; i<50; i++){cClass[i] = nala.getClassName(i);}
JComboBox classBox = new JComboBox(cClass);
classBox.setSelectedIndex((int)nala.getRace());
classBox.addActionListener(this);

public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("GenderBox")){
JComboBox cb = (JComboBox)e.getSource();
System.out.println(cb.getSelectedItem().toString());
}
JLabel label = new JLabel(setStatsInfo());
}//actionPerformed(ActionEvent e)

最佳答案

当 JComboBox 中的选择发生更改时,请使用 ItemListener .

示例:

JComboBox combo = new JComboBox();
combo.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent arg0) {
// TODO: Action.
}
});

您的代码仅显示添加监听器,这确实为您的问题提供了任何线索。请发布 ActionEvent 方法代码来向我们展示问题。

关于java - 监听 JComboBoxes 和 JTextFields 来修改激活类突变器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14533404/

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