Java Swing:从动态生成的 jTabbedPane 中获取值 [关闭]

Posted

技术标签:

【中文标题】Java Swing:从动态生成的 jTabbedPane 中获取值 [关闭]【英文标题】:Java Swing: Getting values from dynamically generated jTabbedPane [closed] 【发布时间】:2013-06-12 09:18:54 【问题描述】:

我默认有一个标签(tab1) 生成新标签,等于“房间数”。 动态生成的选项卡与默认选项卡具有相同的结构。 我不知道新生成的选项卡的文本字段的名称。 如何在运行时找到在选项卡上生成的 jtexfields 的名称,以便我可以使用 .getText()

除非我有 10 个代表,否则我无法使用图像来解释我的问题。 所以我从 Daniweb 发布链接我不确定这是否允许。

对不起,我忘了添加代码

   int no_room = Integer.parseInt(jTextField6.getText());
   for(int i = 1 ; i<no_room; i++)
   
   int c = jTabbedPane5.getTabCount();
   jTabbedPane5.addTab("tab "+(i+1), jTabbedPane5.getTabComponentAt(c-1));
   jTabbedPane5.validate();
   jTabbedPane5.repaint();
   

编辑 2:更多详情

我正在构建一个桌面应用“生成器应用”。

在那里,我问客户他想要在他的房子里有多少个房间。 他说,例如 3 个房间。 现在在运行时,我生成 3 个选项卡(使用上面的代码)用于输入每个房间的详细信息。 每个新生成的标签都是我的“默认标签”的精确副本。 选项卡由四个文本字段组成,现在与许多其他业余爱好者一样,我不知道如何从这些动态生成的文本字段中检索值。 所以在这里我请求你帮助我,告诉我如何在我不知道这些动态生成的文本字段的名称时使用 .getText() 方法。 我见过类似的问题,但没有一个使用过标签。

http://static.daniweb.com/images/attachments/3/ebbc1e39377be620031e5fe5d93f7940.jpg http://static.daniweb.com/images/attachments/3/9577a07941c9116964dcb07c32a702c4.jpg http://static.daniweb.com/images/attachments/3/97e62dfd97cb0230dad2e2df9783b935.jpg

【问题讨论】:

你能给我们一些生成标签的代码吗? 你没有提供足够的信息,所以这个问题可以在没有疯狂猜测的情况下得到回答。请修正这个缺陷。 另外,您是否在其他地方(例如 Daniweb)交叉发布了相同的问题?如果是这样,我们非常感谢看到指向交叉帖子的链接。如果你曾经自愿在这里提供帮助,你就会明白花相当多的时间来回答一个已经在其他地方回答过的问题是多么令人沮丧。 @HovercraftFullOfEels 我无法发布图片,除非我获得 10 个代表(tx 到 -1 s),所以我必须在 Daniweb 上发布我的问题,只是为了图片。您在此处看到的图片是来自 Daniweb 的链接。 @Batman:那是因为你没有创建新对象。请看下面的答案。如果您需要更具体的帮助,最好再次向我们展示可编译和可运行的代码。我们不想看到你的整个程序,特别是如果它很大的话,而是你应该将你的代码压缩成仍然可以编译和运行的最小部分,没有与你的问题无关的额外代码,但仍然可以证明你的问题,换句话说,一个 SSCCE(简短、自包含、正确(可编译)、示例)。有关 SSCCE 的更多信息,请查看此处:sscce。 【参考方案1】:

从动态生成的 jTabbedPane 中获取值

我认为解决您的问题的一种方法不是考虑将新选项卡添加到 JTabbedPane,而是考虑创建新对象并将其添加到您的程序中。请考虑以下建议:

创建一个类,该类创建由 JTabbedPane 的每个选项卡保存和显示的 JPanel。出于讨论的目的,我们将类称为 RoomDetailPanel 当您创建一个新选项卡时,执行此操作,然后为其提供一个要显示的新 RoomDetailPanel 对象。 创建一个包含 JTabbedPane 并负责创建选项卡和 RoomDetailPanel 对象的类。出于讨论的目的,我们称之为 ClientDetailPanel。 为 ClientDetailPanel 提供 RoomDetailPanel 的集合,可能是 ArrayList&lt;RoomDetailPanel&gt;。 每当创建新选项卡和 RoomDetailPanel 对象时,将 RoomDetailPanel 对象添加到上述 ArrayList。 如果要提取用户输入的所有信息,请使用 for 循环遍历 ArrayList,查询每个 RoomDetailPanel 对象以获取其包含的信息。

上帝啊,为了尽可能清楚地解释我的问题,我什至发布了图片。

我们很沮丧,因为即使使用您的代码 sn-p 和图像,我们仍然无法准确判断您可能会卡在哪里。这就是为什么我们不断要求更多信息和澄清,这就是为什么我可以给你一般的整体建议,但不能给你具体的代码建议。将来,请考虑创建并发布sscce,让我们更好地理解和理解您的问题。


编辑

我想知道 JTable 是否会使界面更简洁?

【讨论】:

以上是关于Java Swing:从动态生成的 jTabbedPane 中获取值 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

java swing 中的列表框JList如何在程序中动态的添加和删除元素

java swing实现动态心形图案的代码下载

Java Swing 图形界面实现验证码(验证码可动态刷新)

java怎么自动生成订单号

java swing 通过UIManager怎么能动态改变字体?

安卓android聊天室的设计,里面Client.java类,里面说“swing代码生成界面省略”,怎么自动生成。