gpt4 book ai didi

java - ListSelectionListener 不更改面板

转载 作者:行者123 更新时间:2023-12-02 02:55:21 25 4
gpt4 key购买 nike

我想要一个 ListSelectionListener 事件来更改 JPanel。我知道它被正确触发,因为打印语句正在工作,但是面板根本没有改变。

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(),以便布局管理器可以为组件提供面板上的大小和位置。

关于java - ListSelectionListener 不更改面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43174781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com