| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 641 人关注过本帖
标题:关于一个JFrame
只看楼主 加入收藏
hjq
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-11-21
收藏
 问题点数:0 回复次数:8 
关于一个JFrame

现在我想做几个面板,每一个面板都有其自己既功能,简单来说,就是例如按了"下一步"的按钮就在同一个JFrame显示
另一个询问框,同时如果按钮了"上一步"的按钮也可以回到原来的面板,就好像这里的论坛有一个人做的模拟ATM的程序那样,
不过不是弹出另一个窗口,然后把原来的窗口隐藏,
我开始写了下边的代码,发觉是不行的,不过我都觉得应该不行,所以希望有高人指教一下
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class testpanel extends JFrame implements ActionListener
{
JPanel p1=new JPanel() ;
JPanel p2=new JPanel() ;
JButton b1=new JButton("Enter") ;
JButton b2=new JButton("Finish") ;
JButton b3=new JButton("Return") ;
JLabel l1=new JLabel("Wellcome") ;
JLabel l2=new JLabel("Test Finish") ;
public testpanel()
{
this.setLayout(new BorderLayout());
p1.setLayout(new FlowLayout()) ;
p2.setLayout(new FlowLayout()) ;
p1.add(b1,BorderLayout.SOUTH ) ;
p1.add(l1,BorderLayout.CENTER ) ;
p1.setVisible(true) ;
p2.setVisible(false) ;
p2.add(b2,BorderLayout.CENTER ) ;
p2.add(b3,BorderLayout.CENTER ) ;
p2.add(l2,BorderLayout.NORTH ) ;
b1.addActionListener(this) ;
b2.addActionListener(this) ;
b3.addActionListener(this) ;
this.add(p2) ;
this.add(p1) ;
this.setSize(300,200) ;
this.setVisible(true) ;
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() ==b1);
{
p1.setVisible(false) ;
p2.setVisible(true) ;
}
if(e.getSource() ==b3)
{
p1.setVisible(true) ;
p2.setVisible(false) ;
}
if(e.getSource() ==b2)
{
System.exit(0);
}
}
public static void main(String[] args) {
new testpanel();
}
}
其实我的意思就是用两个JPanel添加到JFrame里面 然后通过各自的setvisible设置为true 或flase 来控制它的显示,结果
是最上面的JPanel覆盖了下边的JPanel了,所以行不通,请指教一下,谢谢啦

搜索更多相关主题的帖子: JFrame 
2007-01-16 22:55
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 

你可以使用add()和remove方法来实现

你要加什么进来,就先调用removeAll,然后再加进来
[media=wmv,2,2,1]http://bbs.bc-cn.net/BuyPost.asp?boardid=220&replyid=474351&id=474351&rootid=116355&posttable=Dv_bbs2[/media]


可惜不是你,陪我到最后
2007-01-16 23:04
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
..........有时候看着你们觉得挺悲哀的
if(e.getSource() ==b1);
{
p1.setVisible(false) ;
p2.setVisible(true) ;
}
这样的代码都写得出来...




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

/**
*
* @author vlinux
*/
public class TestPanel extends JFrame implements ActionListener {

JPanel p1=new JPanel();
JPanel p2=new JPanel();
JButton b1=new JButton("Enter");
JButton b2=new JButton("Finish");
JButton b3=new JButton("Return");
JLabel l1=new JLabel("Wellcome");
JLabel l2=new JLabel("Test Finish");

/** Creates a new instance of TestPanel */
public TestPanel() {
this.setLayout(new BorderLayout());

p1.setLayout(new FlowLayout());
p1.add(b1,BorderLayout.SOUTH );
p1.add(l1,BorderLayout.CENTER );


p2.setLayout(new FlowLayout());
p2.add(b2,BorderLayout.CENTER );
p2.add(b3,BorderLayout.CENTER );
p2.add(l2,BorderLayout.NORTH );

b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
this.setContentPane( p1 );
this.setSize(300,200);
this.setVisible(true);
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}

public void actionPerformed(ActionEvent e) {
if(e.getSource() ==b1) {
this.setContentPane( p2 );
this.setVisible(true);
}
if(e.getSource() ==b3) {
this.setContentPane( p1 );
this.setVisible(true);

}
if(e.getSource() ==b2) {
System.exit(0);
}
}
public static void main(String[] args) {
new TestPanel();
}

}

[此贴子已经被作者于2007-1-17 2:46:51编辑过]


淘宝杜琨
2007-01-16 23:12
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
还有,千里,能不能把你那签名去掉~~

淘宝杜琨
2007-01-16 23:13
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
还是你牛
[media=wmv,2,2,1]http://bbs.bc-cn.net/BuyPost.asp?boardid=220&replyid=474352&id=474352&rootid=116355&posttable=Dv_bbs2[/media]

可惜不是你,陪我到最后
2007-01-16 23:13
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
以下是引用神vLinux飘飘在2007-1-16 23:13:20的发言:
还有,千里,能不能把你那签名去掉~~

我的签名不好吗?

难道改成你的签名?


可惜不是你,陪我到最后
2007-01-16 23:13
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
不是,我见你整天发歌曲,我还以为你把歌曲作为你的签名了呢,既然不是就算了。今天累死我。

淘宝杜琨
2007-01-16 23:26
编程新贵
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-8-11
收藏
得分:0 
p2.setVisible(true) ;这样的语句写在构造函数中,我觉得更精练点
2007-01-17 02:29
hjq
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-11-21
收藏
得分:0 
  谢谢你们的指教~~因为我是一个初学者,所以很多东西都不懂,所以多多指教~

2007-01-17 10:22
快速回复:关于一个JFrame
数据加载中...
 
   



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

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