2016-02-13 116 views
0

我有一个JSplitPane分为verticlly,它包含左侧的JList和右侧的JTabbedPane。 JList vararaiable被命名为jlist1,其中包含4个项目。 默认情况下,JTabbedPane没有标签。 我希望每当用户点击任何JList项目时,应该在JSplitPane的右侧动态打开一个新选项卡(即在JTabbedPane中打开一个新选项卡)。 我也想给所有动态打开的选项卡提供一个关闭按钮[x]。 我该如何做到这一点?如何点击JList项目在JTabbedPane中打开新选项卡?

+0

它在一定程度上有所帮助。但我无法为每个JList项目放置ListSelection事件。你能告诉我如何为JList中的每个项目添加一个监听器吗?附:我是新手 –

+1

'我如何为JList中的每个项目添加一个监听器?' - 监听器确实适用于所有项目。阅读Swing教程中有关如何使用列表的部分作为示例。但是,您不应该使用选择侦听器。如果用户使用键盘从顶部项目移动到底部项目,则会为每个选择打开一个新选项卡。常规惯例是使用鼠标双击或使用键盘Enter键对选定项目执行处理。 – camickr

回答

0

您需要添加一个侦听器来侦听jlist中的选择事件。您可以通过在JList中触发选择事件来实现此目的。 您可以使用javax.swing.event JTabbedPane应侦听此事件,获取与事件关联的对象并在侦听器实现中构造一个选项卡。

+0

谢谢你的回复。你可以举个例子来解释吗? –

2

我也想通过阅读从Swing教程中的部分上How to Use Tabbed Panes提供关闭按钮[X]所有动态打开的标签

开始。有一个工作示例显示如何执行此操作。

我想,只要用户点击任何JList的项目,一个新的标签应该是动态打开

那么任何用户界面应该允许用户既可以使用鼠标或键盘来提供一个Action。因此,通常在使用JList时,您可以使用鼠标双击或使用键盘输入。

结账List Action。这是一个简单的类,允许您创建一个Action,只要使用鼠标或键盘就可以调用该类。

因此,在您的自定义Action中,您需要添加逻辑来为JList中的选定项目创建新选项卡。从链接中提供的简单操作开始,并添加您的自定义代码。

+0

谢谢你,哥们。我仍然需要在课堂的“行动”部分工作。 –

相关问题