gpt4 book ai didi

java - 如何从另一个窗口将项目添加到 JList

转载 作者:行者123 更新时间:2023-12-01 23:55:34 27 4
gpt4 key购买 nike

我有 2 个窗口。一个有一个空的 JList,另一个有一个按钮。所以我想每当按下按钮时都将该值添加到列表中。这是我的代码,但尚未完成:

窗口 1

final DefaultListModel<String> favouriteNames = new DefaultListModel<String>();
JList namesList = new JList(favouriteNames);

窗口 2

public class button extends JFrame {

private JList namesList;
private DefaultListModel<String> favouriteNames;

this.namesList = namesList;

JButton addThis = new JButton("Add");
addThis.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
favouriteNames.addElement("Jack");
}
});
}
}

最佳答案

在构造函数中将 DefaultListModel 的实例传递给窗口 2。

编辑添加:以下是在构造函数中传递实例的方法。

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.SwingUtilities;

public class ButtonFrame implements Runnable {

private JFrame frame;

private DefaultListModel favouriteNames;

public ButtonFrame(final DefaultListModel favouriteNames) {
this.favouriteNames = favouriteNames;
}

@Override
public void run() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JButton addThis = new JButton("Add");
addThis.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
favouriteNames.addElement("Jack");
}
});

frame.add(addThis);
frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new ButtonFrame(new DefaultListModel()));
}

}

关于java - 如何从另一个窗口将项目添加到 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15687201/

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