gpt4 book ai didi

java - 获取 JList 组件时遇到问题

转载 作者:行者123 更新时间:2023-12-02 05:26:27 25 4
gpt4 key购买 nike

获取 JList getSelectedIndicesgetComponents 时出现问题。显示的代码被包装到按钮的 actionPerformed -> ActionListener 中。

这是我的代码:

public class PanelLeft extends JPanel {

private DefaultListModel<String> dlm;
private JList<String> list;

public PanelLeft() {

dlm = new DefaultListModel<String>();
dlm.addElement("FOL");
dlm.addElement("SSII");
dlm.addElement("EEDD");
dlm.addElement("Marcas");
dlm.addElement("BBDD");
dlm.addElement("Programación");

list = new JList<String>(dlm);
list.setFixedCellWidth(200);


JScrollPane jsp = new JScrollPane(list);
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

add(jsp);
}

public JList<String> getList() {
return list;
}
}

对于ActionListener

class ControlToRight implements ActionListener {

private PanelLeft pl;
private PanelRight pr;

public ControlToRight(PanelLeft panL,PanelRight panR) {
pl = panL;
pr = panR;
}

@Override
public void actionPerformed(ActionEvent e) {
if(pl.getList().getSelectedValuesList() != null) {
for(int i : pl.getList().getSelectedIndices()) {
pr.getList().add(pl.getList().getComponent(i));
}
}
}
}

它应该将左侧面板列表 (pl) 中的组件添加到右侧面板列表 (pr)。

实际结果什么都没有。它什么也没做,没有ArrayIndexOutOfBounds,什么也没有。它甚至不会跳转到 for 循环。

最佳答案

您没有看到任何内容的原因是您尚未将 ControlToRight(ActionListener) 添加到任何列表上的监听器列表中。

更改:

public ControlToRight(PanelLeft panL,PanelRight panR) {
pl = panL;
pr = panR;
pl.getList().addActionListener(this);
pr.getList().addActionListener(this);
}

关于java - 获取 JList 组件时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56228180/

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