【问题标题】:How does clicking on a JList item open a new tab in JTabbedPane?单击 JList 项目如何在 JTabbedPane 中打开一个新选项卡?
【发布时间】:2016-02-13 16:07:16
【问题描述】:

我有一个垂直分割的 JSplitPane,其中包含左侧的 JList 和右侧的 JTabbedPane。 JList 变量名为 jlist1,其中包含 4 个项目。 默认情况下,JTabbedPane 没有选项卡。 我希望每当用户单击任何 JList 项目时,都应在 JSplitPane 的右侧动态打开一个新选项卡(即,在 JTabbedPane 中打开一个新选项卡)。 我还想为所有动态打开的选项卡提供一个关闭按钮 [x]。 我怎样才能做到这一点?

【问题讨论】:

  • 它确实在一定程度上有所帮助。但我无法为每个 JList 项目放置 ListSelection 事件。你能告诉我如何为 JList 中的每个项目添加一个侦听器吗?附:我是新手
  • how I can add a listener for every item in JList? - 监听器确实适用于所有项目。阅读 How to Use Lists 上的 Swing 教程中的部分以获取工作示例。但是,您不应该使用选择侦听器。如果用户使用键盘从顶部项目转到底部项目,将为每个选择打开一个新选项卡。通常的约定是使用鼠标双击或键盘回车对选中的项目进行处理。

标签: java swing netbeans


【解决方案1】:

我还想为所有动态打开的选项卡提供一个关闭按钮 [x]

首先阅读 How to Use Tabbed Panes 上的 Swing 教程部分。有一个工作示例说明了如何执行此操作。

我希望每当用户单击任何 JList 项目时,都应该动态打开一个新选项卡

任何用户界面都应该允许用户使用鼠标或键盘来提供Action。因此,通常在使用 JList 时,您会使用鼠标双击或使用键盘 Enter。

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

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

【讨论】:

  • 谢谢你,伙计。我仍然需要学习课程的“行动”部分。
【解决方案2】:

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

【讨论】:

  • 感谢您的回复。您能举个例子解释一下吗?
猜你喜欢
  • 1970-01-01
  • 2019-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
  • 2017-06-29
相关资源
最近更新 更多