说明当前在 jtabbedpane 中显示什么 jpanel 的方法

Method to say what jpanel is shown at the moment in a jtabbedpane

我没有找到说明此刻显示什么 jpanel 以及我此刻在屏幕上看到什么的方法。我尝试了 isShowing() 、 hasFocus() 、 isEnabled() 但从未奏效。非常感谢。

您可以使用 getSelectedComponent()getSelectedIndex() 在 jtabbed 窗格上获取当前活动的面板。考虑以下示例,这将在单击按钮时将当前活动面板的颜色设置为黄色

public class JTabbedPaneDemo extends JFrame {

    public JTabbedPaneDemo() {
        JButton button = new JButton("color");
        JPanel mainpanel = new JPanel();
        JTabbedPane jtbExample = new JTabbedPane();
        JPanel jplInnerPanel1 = new JPanel();
        jtbExample.addTab("t1", jplInnerPanel1);
        jtbExample.setSelectedIndex(0);
        JPanel jplInnerPanel2 = new JPanel();
        jtbExample.addTab("t2", jplInnerPanel2);
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                jtbExample.getSelectedComponent().setBackground(Color.yellow);
            }
        });
        setLayout(new GridLayout(1, 1));
        mainpanel.setLayout(new BorderLayout());
        mainpanel.add(jtbExample, BorderLayout.CENTER);
        mainpanel.add(button,BorderLayout.NORTH);
        this.setContentPane(mainpanel);
        this.setVisible(true);
    }

    public static void main(String[] args) {
        new JTabbedPaneDemo();
    }
}

并征求您的意见

myPane.getSelectedComponent() 将 return 活动组件。和 getSelectedComponent() return component 对象。所以 getComponents() 中没有方法 component class.if 你将获得 jpnel 中的所有组件然后你必须在调用 getComponents() 示例

之前将 returned 组件转换为 jpanel
Component[] c=((JPanel)jtbExample.getSelectedComponent()).getComponents();

征求意见 2

如果你想验证活动的是 jpanel1 然后转换到 jpanel 并检查 follow.make 确定你已经将 jPanel12 声明为 field 变量。

if((JPanel)jTabbedPane2.getSelectedComponent()==jPanel12){
     System.out.println("jPanel12 is active");
}