当用户点击按钮时,我试图从JList中删除选中的项目。
目前我有这样的东西:
private void clickActionPerformed(java.awt.event.ActionEvent evt) {
myList.remove(myList.getSelectedIndex());
}
当我单击按钮删除项目时,出现以下错误:
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 3
如何修复此错误,以及我的代码是否删除了多个项目?
Object[] oo=new Object[] { "Clark", "Skill" };
for(Object o :oo)
model.addElement(o);
final JList list = new JList(model);
JButton btnDelete = new JButton("Delete");
btnDelete.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(list.getSelectedIndex()>=0)
model.remove(list.getSelectedIndex());
}
});
尝试删除对象而不是索引:
private JList<MyObject> list;
private DefaultListModel<MyObject> myobjectListModel;
public FabricaCoches()
{
....
myobjectListModel = new DefaultListModel<MyObject>();
list = new JList<MyObject>(myobjectListModel);
....
}
@Override
public void actionPerformed(ActionEvent arg0)
{
// get a list with selected objects
List<MyObject> selectedItems = list.getSelectedValuesList();
for (MyObject o: selectedItems)
myobjectListModel.removeElement(o);
}
如果开始从最高选定索引到最低选定索引进行删除,则可以从DefaultListModel中删除多个项。类似于:
@Override
public void actionPerformed(ActionEvent e) {
switch(e.getActionCommand()){
case "Remove": {
int index = this.list[0].getSelectedIndices().length - 1;
while (this.list[0].getSelectedIndices().length != 0) {
this.defaultListModel[0].removeElementAt(this.list[0].getSelectedIndices()[index--]);
}
}
...
问题内容: 谁能告诉我从我删除所选项目的简便方法? 我在Google和此处进行了搜索,但发现了很多方法。我应该使用哪种方式? 问题答案: 正如@Andreas_D所说,以数据为中心,更抽象的ListModel是解决方案。这可以是DefaultListModel。您应该在JList中显式设置模型。所以(感谢@kleopatra发表评论): DefaultListModel中有几种方法。 顺便说一句,
我正在尝试从JList中删除选定的元素。我知道怎么去掉一个 然而;有办法删除我选择的索引吗?我知道这个功能 返回一个Int数组。我想,如果我遍历它以移除索引,它应该会起作用,但是,我会从中得到错误(假设是因为索引#正在下降)。
问题内容: 嗨,我必须从一个JList中选择一个元素,将其从第一个元素中删除。我创建的方法仅插入一个元素,覆盖最后一个元素,并且不会从第一个JList中删除所选项目。这是代码: 第一名单 通过此方法填充: 第二个列表,我要在其中插入从第一个列表中删除的项目: 这是无效代码: 谢谢 问题答案: 问题是 您可能要添加一个元素并立即将其删除,因为添加和删除操作都在同一listModel上。 尝试
我正在创建一个屏幕,上面有四个列表。基本上是两对列表,您可以在对中的一个列表上选择行,然后将它们移动到对中的另一个列表。 查看文档,我需要为每个列表提供一个ListSelectionModel来确定选择了哪些行。我将使用[Sel]或[Des]按钮来执行实际的传输。 文档和示例说我需要一个ListSelectionListener,但是,由于在用户单击按钮之前我不会访问模型,所以我实际上需要一个监听
我通过JFileChooser使用下面这段代码将一个名为test.xml的文件添加到我的JList中; 现在我必须从Jlist中选择一个文件,然后将它转换成另一个文档。如果我给出输入,转换步骤就会起作用; 但是如果我给它,它就不起作用; 列表及其向量使用以下代码段创建: 你们谁能告诉我如何从JList中选择该特定文件来进行转换吗?提前感谢…!
从项目中去除可可的正确方法是什么?我要把整块可可皮去掉。由于我的客户施加的一些限制,我不能使用它。我只需要一个xcodeproj而不是一个XCWorkspace。