Java Swing:从动态生成的jTabbedPane获取值

时间:2013-06-16 04:40:57

标签: java swing dynamic components

我默认有一个标签(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:更多详情

我正在构建一个桌面应用'Builder app'。

在那里,我问客户他想要在他家里有多少房间 他说,例如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

1 个答案:

答案 0 :(得分:1)

  

从动态生成的jTabbedPane获取值

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

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

天哪,为了尽可能清楚地解释我的问题,我甚至发布了图片。

我们感到很沮丧,因为即使使用了您的代码段和图片,我们仍然无法确切地说明您可能遇到的问题。这就是为什么我们不断要求提供更多信息和澄清,这就是为什么我可以给你一般的整体建议,但不能给你具体的代码建议。将来,请考虑创建并发布sscce,以便我们更好地理解您的问题。


修改

我想知道JTable是否能用于更清洁的界面?