我正在处理作为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,但我可以'弄清楚如何获得该领域的价值,我甚至不知道是否有一种方法可以帮助解决这个问题。 你有什么建议怎么做吗?
答案 0 :(得分:0)
将Components
添加到Array
或List
,然后只需从相对索引(array[index]
或list.get(index)
)中调用它们。
如果您无法直接访问索引所需的数字,则可以使用Array
循环直接遍历List
或for
。
通过这种方式,您可以了解Components
的对象类型,您可以安全地投射或直接访问正确的方法(getText()
等)。