gpt4 book ai didi

java - 应用程序运行时更新 JComboBox

转载 作者:行者123 更新时间:2023-12-01 23:16:29 24 4
gpt4 key购买 nike

使用

list0.setModel(new DefaultComboBoxModel(toTable.data));

我可以更新整个 JComboBox (list0)...但我想向其中添加几行(需要在列表中选择几个不同的位置)。当我使用此命令时,它会进行更新,但每次都会在 JComboBox 的第一行中进行更新。这意味着我的 JComboBox 最终将只有一个位置。

我试过了

list0.setModel(new DefaultComboBoxModel(toTable.data[x]));

但它不起作用。有什么想法吗?

(x-行数)

最佳答案

不太确定您在问什么,但您似乎只想动态地将元素添加到JComboBox。您似乎有正确的想法,使用 DefaultComboBoxModel。要在列表中添加新元素,请使用

model.addElement(E object)

参见DefaulComboBoxModel了解更多方法。

这是一个简单的例子。只需在文本字段中输入一些内容,然后按 Enter 键即可。这是我使用的重要代码

@Override
public void actionPerformed(ActionEvent ae) {
String text = textField.getText();
model.addElement(text);
comboBox.setSelectedItem(text);
textField.setText("");
}

这里是完整的程序

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultComboBoxModel;
import javax.swing.*;
public class CBoxModelDemo {

public CBoxModelDemo() {
JFrame frame = new JFrame("Combo Box Model");

String[] list = {"Hello 1", "Hello 2", "Hello 3", "Hello 4"};
final DefaultComboBoxModel model = new DefaultComboBoxModel(list);
final JComboBox comboBox = new JComboBox(model);
frame.add(comboBox, BorderLayout.NORTH);

final JTextField textField = new JTextField(30);
frame.add(textField, BorderLayout.SOUTH);
frame.add(new JLabel("Type something, then press enter", JLabel.CENTER));

textField.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
String text = textField.getText();
model.addElement(text);
comboBox.setSelectedItem(text);
textField.setText("");
}
});

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new CBoxModelDemo();
}
});
}
}

enter image description here

关于java - 应用程序运行时更新 JComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21126216/

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