JTabbedPane中使用组件,
程序刚打开的时候,应显示第一个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);
}
}
将第二个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);
}
}
...全文
相关推荐
Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane)组件使用案例
JTabbedPane允许在一个组件中展示多个面板,每个面板对应一个选项卡。使用JTabbedPane,可以更有效地组织和显示内容。创建选项卡窗体的步骤包括:1. 创建JTabbedPane对象。
Java中JTabbedPane(选项卡)的用法实例
在本实例中,我们将深入探讨`JTabbedPane`的使用方法,以及如何通过示例代码`Tabs.java`创建一个简单的选项卡式界面。首先,我们需要导入`javax.swing.
java swing JTabbedPane实例
这个实例显然展示了如何在Java程序中使用`JTabbedPane`来创建具有多个视图的界面,每个视图都可以包含不同的组件或信息。
带关闭按钮的JTabbedPane
, BorderLayout.EAST); }}// 在主程序中使用JTabbedPane tabbedPane = new JTabbedPane();CloseableTabPanel panel
java Swing实现选项卡功能(JTabbedPane)实例代码
tabPane = new JTabbedPane(JTabbedPane.TOP);c.add(tabPane);```接下来,你可以使用 `addTab` 方法向 `JTabbedPane` 添加新的选项卡


