我有一个垂直划分的JSplitPane,左侧包含JList,右侧包含JTabbedPane。 JList变量名为jlist1,包含4个项目。 JTabbedPane默认没有选项卡。 我希望每当用户点击任何JList项目时,都应在JSplitPane的右侧动态打开一个新选项卡(即,在JTabbedPane中打开一个新选项卡)。 我还想为所有动态打开的标签提供一个关闭按钮[x]。 我怎样才能做到这一点?
答案 0 :(得分:2)
我还想为所有动态打开的标签提供关闭按钮[x]
首先阅读https://raymii.org/s/tutorials/Ansible_-_Only-do-something-if-another-action-changed.html上的Swing教程中的部分。有一个工作示例说明了如何执行此操作。
我希望每当用户点击任何JList项目时,都应该动态打开一个新标签
任何UI都应该允许用户使用鼠标或键盘来提供Action
。因此,通常在使用JList
时,您可以使用鼠标双击或使用键盘输入。
结帐How to Use Tabbed Panes。这是一个简单的类,允许您创建一个Action
,只要使用鼠标或键盘就可以调用它。
因此,在您的自定义Action
中,您需要添加逻辑,以便为JList
中的所选项目创建新标签。从链接中提供的简单操作开始,添加您的自定义代码。
答案 1 :(得分:0)
您需要添加一个侦听jlist中选择事件的侦听器。您可以通过在JList中触发选择事件来实现此目的。 你可以使用javax.swing.event JTabbedPane应该监听此事件,获取与事件关联的对象,并在侦听器实现中构造一个选项卡。