gpt4 book ai didi

java - JTabbedPane 组件访问

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:02:27 24 4
gpt4 key购买 nike

我在我的 Java GUI 代码之一中使用了 JTabbedPane。我使用以下代码部分来实例化和维护 tabpane

JTabbedPane tabpane =  new JTabbedPane();  
PageViewer pv = new PageViewer();
tabpane.addTab("tabttitle", new JScrollPane(pv));

PageViewerJEditorPane 的扩展类。我想访问和修改当前选定选项卡的构成 PageViewer pv 组件。我用 ind 的一些值尝试了以下代码行。

JScrollPane jsp = (JScrollPane) tabpane.getComponentAt(tabpane.getSelectedIndex());  
PageViewer pv2 = (PageViewer) jsp.getComponent(ind);

但是对于 ind==0 编译器说 “java.lang.ClassCastException: javax.swing.JViewport cannot be cast to menu_window.PageViewer”

对于 ind==1,它说 “java.lang.ClassCastException: javax.swing.JScrollPane$ScrollBar cannot be cast to menu_window.PageViewer”

对于 ind==2 输出是 "java.lang.ClassCastException: javax.swing.JScrollPane$ScrollBar cannot be cast to menu_window.PageViewer"

对于 ind>=3 错误是 "java.lang.ArrayIndexOutOfBoundsException: No such child: 3"

现在我该如何完成所需的工作,如果有人知道请帮忙。

注意:我使用 NetBeans 6.8 和 Java 6 标准版。

最佳答案

当您围绕组件创建 JScrollPane 时,滚动 Pane 实际上将组件添加到内部 JViewPort 中。要从滚动 Pane 中获取原始组件,您可以这样做:

PageViewer pv2 = (PageViewer)jsp.getViewport().getView();

关于java - JTabbedPane 组件访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4984835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com