方法说明jtabbedpane

时间:2015-06-15 15:53:35

标签: java swing jpanel jtabbedpane

我没有找到说明当前jpanel显示的方法,此刻我在屏幕上看到的内容。我尝试isShowing(),hasFocus(),isEnabled()但从来没有这样做。谢谢。

1 个答案:

答案 0 :(得分:3)

您可以使用getSelectedComponent()getSelectedIndex()在jtabbed窗格上获取当前活动的面板。考虑以下示例,当单击按钮

时,这将把当前活动面板的颜色设置为yello
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()将返回活动组件。getSelectedComponent()返回component对象。如果getComponents()类中没有方法component。如果您打算获取jpnel中的所有组件,然后在调用jpanel示例

之前必须将返回的组件转换为getComponents()
Component[] c=((JPanel)jtbExample.getSelectedComponent()).getComponents();

您的评论2

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

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