gpt4 book ai didi

java - 如何让用户不断地将元素输入到JList中

转载 作者:太空宇宙 更新时间:2023-11-04 14:23:12 26 4
gpt4 key购买 nike

我希望能够允许用户不断向 JList 添加元素。该程序允许用户在文本字段中输入一个元素,当用户按下 JButton 时,它会将其添加到列表中。我能够这样做,但我的程序只允许我覆盖以前的元素,而不是添加新元素。

private JList list;
private JTextField textField;

private JButton followUser() {
JButton btnNewButton = new JButton("Follow User");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
DefaultListModel DLM = new DefaultListModel();
String input = textField.getText();
DLM.addElement(input);
list.setModel(DLM);
}
});
return btnNewButton;
}

最佳答案

接下来的问题:您总是在 actionPerformed 中重新创建 DefaultListModel,但您需要使用 JList 中的模型并向其中添加元素。尝试下一个示例:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

public class TestFrame extends JFrame {

private DefaultListModel<String> model;

public TestFrame() {
init();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}

private void init() {
final JTextField field = new JTextField(10);
JButton add = new JButton("add");
add.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
String text = field.getText();
model.addElement(text);
}
});

JPanel p = new JPanel();
p.add(field);
p.add(add);

JList<String> l = new JList<>(model = new DefaultListModel<>());

add(new JScrollPane(l));
add(p,BorderLayout.SOUTH);
}




public static void main(String args[]) {
new TestFrame();
}

}

关于java - 如何让用户不断地将元素输入到JList中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26962573/

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