Java 多个JLists可选择其中两个
我有多个jlist,在一个数组中只有一个选择。我想添加ListSelectionListener,它应该提供只有两个列表是可选的。 我不知道该怎么做。圈套折磨他们,但寻找什么 谢谢你的帮助 更新:现在我做这个代码。当我像下面那样在MouseListener中运行它时,一切都很好,但当我在ListSelectionListener中运行它时,它抛出了ArrayIndexOutOfBoundsExceptionJava 多个JLists可选择其中两个,java,swing,jlist,Java,Swing,Jlist,我有多个jlist,在一个数组中只有一个选择。我想添加ListSelectionListener,它应该提供只有两个列表是可选的。 我不知道该怎么做。圈套折磨他们,但寻找什么 谢谢你的帮助 更新:现在我做这个代码。当我像下面那样在MouseListener中运行它时,一切都很好,但当我在ListSelectionListener中运行它时,它抛出了ArrayIndexOutOfBoundsException public class TblManagement extends JInternal
public class TblManagement extends JInternalFrame {
JList<String> lastListSelected = null;
.
.
public TblManagement(JDesktopPane desk) {
MouseInputAdapter listMouseHandler = new ListMouseHandler();
// create JLists.
columnslist[i].addMouseListener(listMouseHandler);
}
private class ListMouseHandler extends MouseInputAdapter {
public void mouseClicked(MouseEvent e) {
JList<String> currentListSelected = (JList<String>) e.getSource();
int selectedIndex = currentListSelected.getSelectedIndex();
String selectedValue = currentListSelected.getModel().getElementAt(selectedIndex);
//System.out.println(selectedValue);
clearSelections(mainPanel, currentListSelected, lastListSelected);
lastListSelected = currentListSelected;
System.out.println(lastListSelected.getModel().getElementAt(0));
}
}
void clearSelections(Container container, JList currentListSelected, JList lastListSelected) {
for (Component c : container.getComponents()) {
if (c instanceof JList) {
if ( c != lastListSelected && c != currentListSelected) {
System.out.println("JList found");
((JList) c).clearSelection();
}
}
else
if (c instanceof Container) {
clearSelections((Container)c, currentListSelected, lastListSelected);
}
}
}
}循环让他们烦恼,但寻找什么?如果你不知道你在找什么,你希望我们怎么知道你在找什么?只有您知道每个JList的功能。为什么要将JLists添加到阵列中?创建JList时,只需将ListSelectionjListener添加到JList中即可。我的问题是,我不知道ListSelectionListener应该做什么才能使只有2个JLists可选择。