我有两个 JList,jltCategories 和 jltSubcategories,属于同一个 JPanel。双击 jltCategories 会导致 jltSubcategories 填充相应的子类别,并且 jltSubcategories 从 JPanel 中删除,添加回来并重新验证。
在 jltSubcategories 被删除/添加回来后双击它不会触发任何东西。但是,如果我打开程序并双击 jltSubcategories,它将触发其鼠标事件:如果尚未删除/添加回来,它将触发,但如果已删除/添加回来,它将不会触发。jltCategories 也是如此:如果我导致它被删除/添加,它将停止触发。为什么会这样?谢谢!
jltCategories.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() > 1) {
jbtNavigate.doClick();
}
}
});
jltSubcategories.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() > 1) {
jbtLoad.doClick();
}
}
});
jbtNavigate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String catName = jltCategories.getSelectedValue();
try {
jpLists.remove(jltSubcategories);
jltSubcategories = new JList<String>(SQL.populateSubcategories(catName));
jpLists.add(jltSubcategories);
jpLists.revalidate();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
});
jbtLoad.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Testing Testing 213");
}
});