- 论坛徽章:
- 0
|
一个Frame中,添加了JTabbedpane,在JabbedPane中添加了Panel.
程序刚打开的时候,应显示第一个panel中的Label"这是第一页",却显示了第二个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=new JPanel(new GridLayout(10, 1));////初始化,加入布局;
pn.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.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);
}
} |
|