Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ListSelectionListener未更改面板_Java_Swing_Listselectionlistener - Fatal编程技术网

Java ListSelectionListener未更改面板

Java ListSelectionListener未更改面板,java,swing,listselectionlistener,Java,Swing,Listselectionlistener,我需要ListSelectionListener事件来更改JPanel。我知道它被正确地触发了,因为print语句正在工作,但是面板根本没有改变 DefaultListModel leftList = new DefaultListModel(); JList order = new JList(leftList); order.addListSelectionListener(this); JPanel configPanel = new JPanel(); public void valu

我需要ListSelectionListener事件来更改JPanel。我知道它被正确地触发了,因为print语句正在工作,但是面板根本没有改变

DefaultListModel leftList = new DefaultListModel();
JList order = new JList(leftList);
order.addListSelectionListener(this);
JPanel configPanel = new JPanel();

public void valueChanged(ListSelectionEvent e) {
 if(e.getValueIsAdjusting()){
        int index = order.getSelectedIndex();
        System.out.println(leftList.getElementAt(index).toString());
        configPanel.removeAll();
        configPanel.repaint();
        configPanel.add(new JLabel("nice"));
        configPanel.repaint();
        }
    }

我投入第二次重新绘制只是因为我没有东西可以尝试,但是它仍然不起作用。

当您将组件添加到可见GUI时,基本逻辑是:

panel.remove(...);
panel.add(...);
panel.revalidate();
panel.repaint();

基本上,所有组件在创建时都具有(0,0)的大小,因此没有任何可绘制的内容。您需要调用
revalidate()
,以便布局管理器可以在面板上为组件提供大小和位置。

将组件添加到可见GUI时,基本逻辑是:

panel.remove(...);
panel.add(...);
panel.revalidate();
panel.repaint();

基本上,所有组件在创建时都具有(0,0)的大小,因此没有任何可绘制的内容。您需要调用
revalidate()
,这样布局管理器就可以在面板上为组件提供一个大小和位置。

谢谢,这是有效的,所以如果我有这个权利,当监听器被触发时,jlabel就会出现,但由于它的大小(0,0)不可见,这是唯一的问题,对吗?谢谢,这是有效的,因此,如果我没有弄错的话,当侦听器被触发时,jlabel会出现,但是由于它的大小(0,0),所以它就是不可见的,这是唯一的问题,对吗?