我没有找到说明当前jpanel显示的方法,此刻我在屏幕上看到的内容。我尝试isShowing(),hasFocus(),isEnabled()但从来没有这样做。谢谢。
答案 0 :(得分:3)
您可以使用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()
将返回活动组件。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");
}