使用此代码,我可以找到选择了哪个选项卡,但我需要对选项卡内的内容进行处理。我如何使用层次结构?
EditPane.addChangeListener(new ChangeListener() {
// This method is called whenever the selected tab changes
public void stateChanged(ChangeEvent evt) {
JTabbedPane pane = (JTabbedPane)evt.getSource();
// Gets current tab
int sel = pane.getSelectedIndex();
}
});
选项卡内的组件是一个 JScrollPane
。
最佳答案
您不需要 Pane 的索引,您需要在下面选择的组件。 使用 getSelectedComponent() - 例如
JTabbedPane pane = (JTabbedPane)evt.getSource();
JComponent myComponent = pane.getSelectedComponent();
为了阐明您最初的目标,您希望操作 JScrollPane 中的客户端对象。你丢失了一些对象。 在 JScrollPane 中,您需要从 ScrollPane 调用 getViewport().getViewportView() 。 (来源:http://download.oracle.com/javase/tutorial/uiswing/components/scrollpane.html)
关于java - 在 Java 的 GUI 层次结构中查找组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5756061/