java - 在 Java 的 GUI 层次结构中查找组件

标签 java swing user-interface

使用此代码,我可以找到选择了哪个选项卡,但我需要对选项卡内的内容进行处理。我如何使用层次结构?

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/

相关文章:

java - 处理用户的输入?

c++ - QDialog 窗口模式

swing - 如何制作自己的 Scala UI 事件

java - 是否有用于创建 Cron 表达式的 Java 代码?

java - 在 Java 中的大小

Java将负数转为0

java - 鼠标监听器和按键

java - 如何设置jtable中目标单元格的背景颜色?

html - div在移动端如何保持相同的大小

java - QueryDSL where 子句上的 NullPointerException