java中的CardLayout的运用

我编了个窗口界面想实现点击按钮切换页面的功能,就是各个面板(装有相关的组件)的切换,帮忙修改下,一实现功能,若是有别的好方法也可以帮助写下,小弟感激了啊!!!import... 我编了个窗口界面想实现点击按钮切换页面的功能,就是各个面板(装有相关的组件)的切换,帮忙修改下,一实现功能,若是有别的好方法也可以帮助写下,小弟感激了啊!!!
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Image;
import java.awt.Label;
import java.awt.event.*;
import javax.swing.*;
public class mainWind extends JFrame implements ActionListener
{
Container c;
CardLayout card;
JPanel p1,p2,p3,p4;
JMenuBar MenuB;
JButton textBut,shutDownBut,courseManBut,helpBut;

public mainWind()
{
super("贴心小助手");
ImageIcon imgIcon = new ImageIcon("100.gif");
Image img = imgIcon.getImage();
this.setIconImage(img);
setVisible(true) ;
setResizable(false);
setSize(400,300);
setLocation(getToolkit().getScreenSize().width/3
- this.getWidth()/3,
getToolkit().getScreenSize().height/3
- this.getHeight()/3);

//主菜单添加按钮
MenuB=new JMenuBar();
textBut= new JButton("时间管理");
courseManBut=new JButton("课程提醒");
shutDownBut=new JButton("定时关机");
helpBut=new JButton("帮助");
MenuB.add(textBut);
MenuB.add(courseManBut);
MenuB.add(shutDownBut);
MenuB.add(helpBut);
textBut.addActionListener(this);
courseManBut.addActionListener(this);
shutDownBut.addActionListener(this);
helpBut.addActionListener(this);
setJMenuBar(MenuB);

//定义父面板
c=this.getContentPane();
c.setLayout(card);
card = new CardLayout();
p1 = new JPanel();
p2 = new JPanel();
p3 = new JPanel();
p4 = new JPanel();
p1.add(new JButton("第一面板"));
p2.add(new Label("第二面板"));
p3.add(new JButton("第三面板"));
p4.add(new Label("第四面板"));
p1.setBackground(Color.red);
p2.setBackground(Color.blue);
p3.setBackground(Color.yellow);
p4.setBackground(Color.lightGray);
c.add(p1,"1");
c.add(p2,"2");
c.add(p3,"3");
c.add(p4,"4");

}

public void actionPerformed(ActionEvent e)
{

if(e.getActionCommand()=="时间管理")
{
chooseCard("1");
}
else if(e.getActionCommand()=="课程提醒")
{
chooseCard("2");
}
else if(e.getActionCommand()=="定时关机")
{
chooseCard("3");
}
else
{
chooseCard("4");
}
}
protected void chooseCard(String str)
{
card.show(c,str);
}

/**
* @param args
*/
public static void main(String[] args) {
mainWind mw = new mainWind();
mw.chooseCard("1");
// TODO 自动生成方法存根

}

}
展开
 我来答
aaronswon
2009-03-18 · TA获得超过3481个赞
知道大有可为答主
回答量:1863
采纳率:0%
帮助的人:1620万
展开全部
//大致的解决方案是这样滴....

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

import java.awt.*;

public class MyFrame extends JFrame{

private static final long serialVersionUID = 1L;
private int width = 400;
private int height = 300;
private static Toolkit kit = Toolkit.getDefaultToolkit();
JTabbedPane jpan = new JTabbedPane();
int pnum = 4;
JPanel[] pans = new JPanel[pnum];
String [] titles = {"时间管理", "课程提醒", "定时关机", "帮助"};

public MyFrame() {
this.defaultInit();
}

public MyFrame(String title) {
super(title);
this.defaultInit();
}

public MyFrame(String title, int width, int height) {
this(title);
this.width = width;
this.height = height;
this.defaultInit();
}

private void defaultInit() {
for(int i = 0; i < pnum; i ++) {
pans[i] = new JPanel();
jpan.addTab(titles[i], pans[i]);
}
Dimension d = kit.getScreenSize();
this.setLayout(new BorderLayout());
this.add(jpan, BorderLayout.CENTER);
this.setSize(width, height);
this.setLocation((int)(d.getWidth() - width) / 2, (int)(d.getHeight() - height) / 2);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}

public static void main(String[] args) {
new MyFrame();
}

public static Toolkit getKit() {
return kit;
}

}
Eking2000
2009-03-18 · TA获得超过1228个赞
知道小有建树答主
回答量:1471
采纳率:0%
帮助的人:732万
展开全部
我试过了,你的使用方法不对,cardLayout不是这个使用方法。我要改就得和你商量着改,不然达不到要求,你看吧咋办。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
單車老頭
2009-03-19 · TA获得超过140个赞
知道答主
回答量:49
采纳率:0%
帮助的人:40.7万
展开全部
^_^可惜我也是新手,帮不上忙了~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式