当前位置: 首页 > 知识库问答 >
问题:

JTabbedPane所选组件始终为空

蓝夕
2023-03-14
getTabbedPane().addTab("Ground", pnlGround);

public BufferedImage getSelectedImage() { 
    return ((SpritePane) getTabbedPane().getSelectedComponent()).getSelectedImage();
}

GetTabbedPane().GetSelectedComponent()返回NULL。在选择JTabbedPane旁边的一个JPanel后直接调用它,这是我能想到的方法返回空组件的唯一原因;因为选项卡已打开但没有焦点。

然而,我需要找到一种方法来获得JTabbedPane中打开的选项卡。

而且,getTabbedPane().getComponentat(i)始终返回NULL。有6个标签。

getSelectedIndex()返回了正确的索引,但如果我传入该索引,它仍然表示组件为null。

共有1个答案

凤柏
2023-03-14

如果您想要获得“活动/选定”选项卡,请尝试

int idx = getTabbedPane().getSelectedIndex();

然后,您可以通过以下操作获得选项卡的组件(例如面板):

Componennt c = getTabbedPane().getComponent(idx);
 类似资料:
  • 我正在尝试实现 J 选项卡面板。在下面的代码中,我提出了一个与我想要实现的非常相似的案例。我通过将JPanel添加到J选项卡面板来创建了一个选项卡。我已经在JPanel中添加了一个J巴顿和JScrollPane。在单击 J 按钮时,我想添加一个新的 JPanel,其中包含一些 JRadio 按钮到 JScrollPane 中。但是,即使在刷新 JScrollPane 或主 JPanel 之后,这些

  • 我对Laravel Livewire还比较陌生,正在努力解决这个问题。我有一个表单,它有一个select输入,在提交时,它会转到Livewire组件的store函数,我希望捕获选中的选项以进一步处理数据。 现在,表单正确呈现;选择输入被动态填充。 > 在第二次提交时,我看到选择输入选择选项被捕获,这是通过“更新”方法进行的,但公共属性仍然为空。对此非常困惑。 如何解决这两个问题?我使用的是Lara

  • 我正在尝试更新我编写的程序的GUI。在新的GUI上,我有一个JFrame,其中包含一个JPanel,它有一个JTabbedPane和上面的两个按钮。 在JTabbedPane中,我有三个JPanel,其中包含不同的组件。(如按钮、文本字段等)所以现在我必须让所有组件根据类型对其执行相同的操作。 如果有一个文本字段,我必须做一些事情,但如果有一个按钮,我必须做其他事情。 所以之前我做过这样的事情:

  • 问题内容: 这类似于问题如何在Java Swing中构建Google- chrome标签和菜单栏界面?(我想实现相同的目的),但更重要的是:如何在JTabbedPane中的选项卡的前面和后面放置组件? 我已经自己想到了按钮的想法,但是我宁愿有一个JTabbedPane,因为它确实是它的意思,但是在侧面装饰有按钮或图标。 我已经看到,基里尔(Kirill)的laf-widget项目对多个LaF都执行

  • 我对此完全陌生..... 问题是,当我切换到任何选项卡时,我无法获得正常的jpanel效果。按钮不能用鼠标点击(可以通过按tab键选择按钮n然后按space键点击),文本字段不能在鼠标点击时选择(只能通过按tab键选择)等。 那么对此有什么解决办法吗??我希望jtabbedpane中的面板像普通jpanel一样工作:)谢谢:)

  • 下面是片段。请注意,我已经恢复到以前的提交,因此丢失了最近的修改,但请查看我编写的代码,然后才注意到始终等于0() 以下是当检测到活动后按: 以下是NoteActivity接收结果调用的方式。 null 我在我的项目上浪费了很多重要的时间,只是想知道是什么使resultCode和requestCode的值丢失了我发送的值。 任何帮助和指导都将不胜感激。非常感谢!