从CardLayout中的元素获取信息

时间:2016-02-09 14:35:49

标签: java jpanel cardlayout

我正在处理作为CardLayOut一部分的不同面板,每个面板都有一些文本字段,下拉列表和复选框元素,我想要做的是使用布局外的按钮从每个元素获取信息。 我已经找到了如何获取每个元素的属性,这是我对Cardlayout的定义:

    layCard= new CardLayout();
    MainPanel.setLayout(layCard);
    MainPanel.add("Panel1",InfoPanel);
    MainPanel.add("Panel2",selection);
    MainPanel.add("Panel3",questions);
    MainPanel.add("Panel4",summary);

尝试在CardLayout内的MainPanel内的面板内获取元素的信息时,这是我的方法:

private void printValues(java.awt.event.ActionEvent evt) {                                     


    System.out.println(""+MainPanel.getComponent(0).getAccessibleContext().getAccessibleChild(2).getAccessibleContext().getAccessibleText());

}

在这种情况下,我访问MainPanel的元素0,即InfoPanel,并尝试从Child 2获取值,这是一个JtextField,但我可以'弄清楚如何获得该领域的价值,我甚至不知道是否有一种方法可以帮助解决这个问题。 你有什么建议怎么做吗?

1 个答案:

答案 0 :(得分:0)

Components添加到ArrayList,然后只需从相对索引(array[index]list.get(index))中调用它们。

如果您无法直接访问索引所需的数字,则可以使用Array循环直接遍历Listfor

通过这种方式,您可以了解Components的对象类型,您可以安全地投射或直接访问正确的方法(getText()等)。