| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2423 人关注过本帖
标题:[求助]java中面板的切换问题,急~
只看楼主 加入收藏
jklinlin
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-9-26
收藏
 问题点数:0 回复次数:5 
[求助]java中面板的切换问题,急~

我想请问下大家~
我写了一个程序就是先建立了一个Frame,然后在FRAME上面加了两个按钮,一个是sure, 一个是no sure,一个在东面一个在西面,然后在两个按钮上都加了监听器,然后我想实现的功能就是当我点sure的时候出现ok按钮,当我点no sure 的时候出现另外一个按钮。这两个按钮(ok和 按钮)我是分别加在两个面板上的,而且这两个面板都是放在center,我是想点sure
的时候出现OK,然后再点NOSURE的时候出现另外一个按钮的。。但是我发现我的程序只能出现最先点的那个按钮的面板,两外一个面板不能出现,大家能不能帮我看看有没有什么办法能解决这个类似覆盖的问题呢。。我刚学JAVA。。很多问题弄不清楚。。我把我的程序贴一下。你们帮我看下。。这是我们老师给的作业(没这么简单,这个是我乱写测试的)import java.awt.*;
import java.awt.event.*;
class Test9 implements ActionListener
{ Button b2,b4;
Frame f;
Test9()
{
f=new Frame();
b2=new Button("sure");
f.add(b2,BorderLayout.EAST);
b4=new Button("no sure");
f.add(b4,BorderLayout.WEST);
b2.addActionListener(this);
b4.addActionListener(this);
f.setSize(400,400);
f.setVisible(true);

}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b2)
{
Mypanel p=new Mypanel();
f.add(p,BorderLayout.CENTER);
}
if(e.getSource()==b4)
{
Mypane2 p=new Mypane2();
f.add(p,BorderLayout.CENTER);
}
}
public static void main(String args[])
{
new Test9();
}
}
class Mypanel extends Panel
{ Button b1;

Mypanel()
{
b1=new Button("ok");
add(b1);


}
}

class Mypane2 extends Panel
{ Button b3;

Mypane2()
{
b3=new Button("NO");
add(b3);


}
}

搜索更多相关主题的帖子: java 面板 
2006-11-18 00:18
junlongsina
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2006-11-16
收藏
得分:0 
你只是将面板加到Frame上了 并没有显示 当然就不行了。
你应该加上
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b2)
{
Mypanel p=new Mypanel();
f.add(p,BorderLayout.SOUTH);
f.setVisible(true);
}
if(e.getSource()==b4)
{
Mypane2 p=new Mypane2();
f.add(p,BorderLayout.NORTH);
f.setVisible(true);
}
}
就是你想要的结果了。

Java , 梦开始的地方!
2006-11-18 12:57
jklinlin
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-9-26
收藏
得分:0 

不是这个问题,在NEW TEST();中就有setVisible(TURE)了。。你再仔细看看。。是那两个面板不知道怎么切换

2006-11-18 13:22
junlongsina
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2006-11-16
收藏
得分:0 
你试试 看,这样改就和你描述的结果是一样的  如果要使这两个面板之间也可进行切换  最好使在主类中加上调用方法。

Java , 梦开始的地方!
2006-11-18 14:07
damagegod
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-7-30
收藏
得分:0 

设有2个面板p1,p2;
不能在this.add(p1)的基础上使用
this.removeAll();
this.add(p2);
this.repaint();
this.validate();
来切换到p2面板。
而必须在class中定义container con=this.getContentPane();
在con上add(p1);
con.removeAll();
con.add(p2);
con.repaint();
con.validate();
但是需要注意的是在构造器中还是要使用this.setVisiable(true);而不是con.setVisiable(true);

2007-07-30 00:39
狂放不羁
Rank: 4
等 级:贵宾
威 望:12
帖 子:925
专家分:0
注 册:2007-1-24
收藏
得分:0 

为什么不用CardLayout(),再中间线加JPanel,然后设置布局管理器为CardLayout,这样就可以切换了。

2007-07-30 12:28
快速回复:[求助]java中面板的切换问题,急~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012804 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved