Is it possible to get the top card in Java s CardLayout? I ve tried looping through each component to check for visibility with isVisible() but it seems that they re all "visible".
Edit:我用“顶卡”指目前展示的“顶”卡,而不是头张或最后一张卡。 此外,我不知道这是否有助于,但我看一看一看一只JPanel(或其子等)。
Edit: Code snippet
for (Component component : getComponents()) {
if (component instanceof JPanel && component.isVisible()) {
currentPanel = (JPanel) component;
System.out.println(currentPanel.getClass().getName());
}
}
以上代码总是按每个构成部分类别打印,而不论这些类别是可见卡。
Edit:作为学校任务的一部分使用Im。 我不想在这里获得自由,但这项任务并不围绕这一布局。 这似乎只是小组之间变化的最方便的布局。 我的教师已经指出,该项目中没有第三方守则。 我先从足球赛中看到了执行工作,但我可以使用。 我可以松散地实施类似的特征,也许可以在文件中提及,但我只能下载和使用。
Edit: The reason I m trying to get the top card is because I have a toolbar with an "Add" button. Instead of having one add button for each of my two possible things I wanted it to know which to add simply by looking at what panel is currently being viewed. If there is another, more appropriate way to do this please let me know.
http://www.ohchr.org。 感谢大家提供帮助。 我描述了问题。 我认为这是我的过错,因为我没有提供足够的细节。 我的两张卡片<代码>。 JScrollPane,我还需要研究其内容,以发现其中的一个小组是我看到的。 我对关于发烧单本身的<代码>isible()进行了笔录检查,即检查时发现,总是看得见的,正是发卷机需要核实。
public JPanel getCurrentPanel() {
JPanel currentPanel = null;
for (Component component : getComponents()) {
if (component.isVisible()) {
if (component instanceof JPanel)
currentPanel = (JPanel) component;
else if (component instanceof JScrollPane)
currentPanel = (JPanel) ((JScrollPane) component).getViewport().getComponent(0);
}
}
return currentPanel;
}