Java ListSelectionListener不使用弹出JFrame窗口
我在让JList正确使用ListSelectionListener时遇到问题,我;我尝试了一个匿名内部类,并将其添加到我的处理程序类中并实现了它,但两者都不起作用 现在的情况是,我有一个带有JComboBox的JFrame窗口,当你点击“颜色列表”时,会弹出一个新的JFrame窗口,上面有一个JList,选项应该会改变背景色……一切都很好,只是当我点击选项时背景色不会改变。我会发布相应的代码Java ListSelectionListener不使用弹出JFrame窗口,java,swing,user-interface,jframe,listselectionlistener,Java,Swing,User Interface,Jframe,Listselectionlistener,我在让JList正确使用ListSelectionListener时遇到问题,我;我尝试了一个匿名内部类,并将其添加到我的处理程序类中并实现了它,但两者都不起作用 现在的情况是,我有一个带有JComboBox的JFrame窗口,当你点击“颜色列表”时,会弹出一个新的JFrame窗口,上面有一个JList,选项应该会改变背景色……一切都很好,只是当我点击选项时背景色不会改变。我会发布相应的代码 private static String[] colorNames = {"Black", "Blue
private static String[] colorNames = {"Black", "Blue", "Red", "White"};
private static Color[] colors = {Color.BLACK, Color.BLUE, Color.RED, Color.WHITE};
public void colorListOption() {
TheHandler handler = new TheHandler();
newFrame2 = new JFrame();
panel3 = new JPanel();
newFrame2.setTitle("Welcome to The Color List!");
newFrame2.setLayout(new FlowLayout());
newFrame2.setSize(500, 300);
newFrame2.setDefaultCloseOperation(newFrame2.EXIT_ON_CLOSE);
colorList = new JList(colorNames);
colorList.setVisibleRowCount(4);
colorList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
colorList.setOpaque(false);
panel3.add(new JScrollPane(colorList));
newFrame2.add(panel3);
colorList.addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent ls) {
panel3.setBackground(colors[colorList.getSelectedIndex()]);
}
}
);
newFrame2.setVisible(true);
}
你确定这是因为监听器没有启动,背景颜色没有改变吗?也就是说,试着在侦听器中放入一个print语句,看看是否打印。好的,我会让你知道。好的,是的,你说得对。侦听器没有问题,只是背景颜色没有变化……有什么提示吗?我想在重新绘制组件之前,背景颜色不会更新。您可以在设置背景后立即执行getContentPane().repaint()。不,这也不起作用…您确定这是侦听器未启动的问题,也不是背景颜色未更改的问题吗?也就是说,试着在侦听器中放入一个print语句,看看是否打印。好的,我会让你知道。好的,是的,你说得对。侦听器没有问题,只是背景颜色没有变化……有什么提示吗?我想在重新绘制组件之前,背景颜色不会更新。您可以在设置背景后立即执行getContentPane().repaint()。不,这也不起作用。。。