JTabbedPane中使用组件,

xingyun21 xingyun21 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
程序刚打开的时候,应显示第一个panel中的Label"这是第一页",却显示出了第二个panel中的"这是第二页", 这是为什么?
将第二个panel设为不可见,依旧如此,为何?
请教高手

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class Noname2
{
public static void main(String args[])
{
new MyTabbedPane();
}
}
class MyTabbedPane extends Frame implements ChangeListener
{
JTabbedPane jtp;
int currentIndex=0;
int systemtype=1;

/////////////////////////////////////////////////////////////////////////////
JPanel[] pn;//= new JPanel(new GridLayout(10, 1));//定义面板

///////////////////////界面一////////////////////////////////////////////////

Label systemLabel=new Label("这是第一页");
/////////////////////end of 界面一/////////////////////////////////////////////
///////////////////////界面二//////////////////////////////////////////////////

Label meansLabel=new Label("这是第二页");
/////////////////////end of 界面二////////////////////////////////////////////

MyTabbedPane()
{
super("使用卡片容器");
jtp=new JTabbedPane();
pn=new JPanel[9];
//初始化

for(int i=0;i<9;i++)
{

pn[i]=new JPanel(new GridLayout(10, 1));////初始化,加入布局;
pn[i].setBackground(Color.lightGray);
jtp.addTab("第"+(++i)+"步",pn[--i]);

}

jtp.addChangeListener(this);
add(jtp,BorderLayout.CENTER);
addWindowListener(new WindAdpt());
setSize(640,480);

interface1();
interface2();

show();

}//end of MyTabbedPane()

public void stateChanged(ChangeEvent e)
{
if(e.getSource()==jtp)
{
int i=((JTabbedPane)e.getSource()).getSelectedIndex();
pn[currentIndex].setVisible(false);
pn[i].setVisible(true);
currentIndex=i;
}

}//end of public void stateChanged(ChangeEvent e)

/////////////////////////////初始化 界面一///////////////////////////////////
public void interface1()
{
pn[0].add(systemLabel);
pn[0].setVisible(true);

}//end of interface1()
/////////////////////////////end of 界面一///////////////////////////////////////

/////////////////////////////初始化 界面二///////////////////////////////////
public void interface2()
{
pn[1].add(meansLabel);
pn[1].setVisible(false);

}//end of interface2

/////////////////////////////end of 界面二///////////////////////////////////////

}//end of class

class WindAdpt extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
(e.getWindow()).dispose();
System.exit(0);
}
}
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
xingyun21
Java EE 67,535 成员 225,843 内容