gpt4 book ai didi

java - 当它们位于不同的类中时,如何从另一个JPanel事件监听器更改JPanel的组件?

转载 作者:行者123 更新时间:2023-12-01 16:17:25 25 4
gpt4 key购买 nike

我有一个很大的UI,所以我的JPanels都被创建为扩展JPanel的类,而不是使用JFrame在类中设计其组件。因此,在下图中,右侧的JList部分是一个面板,而TabbedPane内部的左侧内容区域是另一面板。

enter image description here

我希望能够从右侧面板中选择更改监听器,并更改左侧面板中存在的内容。我完全不知道如何执行此操作,因为侦听器无法访问其他面板。我可以在网上找到的所有示例中,一个面板更改为另一个面板,所有示例都在一个类或方法中创建和配置了面板。

这是用于在类中设置面板布局的类的代码片段。

// ===tabbedPane===
tabbedPane = new JTabbedPane();
tabbedPane.addChangeListener(e -> selectedTabChanged());
OutfitsPanel outfitsPanel = new OutfitsPanel();
tabbedPane.addTab("Outfits", outfitsPanel);
ItemsPanel itemsPanel = new ItemsPanel();
tabbedPane.addTab("Items", itemsPanel);
OptionsPanel optionsPanel = new OptionsPanel();
tabbedPane.addTab("Options", optionsPanel);

contentPanel.add(tabbedPane, "cell 0 0");
contentPane.add(contentPanel, BorderLayout.CENTER);
listPanel = new NavListPanel(myInv.outfits, myInv.items);
contentPane.add(listPanel, BorderLayout.EAST);


JList面板中的片段

itemList.addListSelectionListener(e -> selectionChanged(e));




    private void selectionChanged(ListSelectionEvent e) {
// what do I do here to change values of components in ItemsPanel object???
}

最佳答案

好的,我不确定这是否正确,但我可以通过将面板中的组件公开,并在生成面板的主类中创建事件处理程序来使其正常工作。

关于java - 当它们位于不同的类中时,如何从另一个JPanel事件监听器更改JPanel的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62365862/

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