Java Layout总结-CardLayout
CardLayout布局管理器:CardLayout布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,它把容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件,当然每层都可以利用Panel来实现复杂的用户界面.布局管理器(CardLayout)就象一副叠得整整齐齐的扑克牌一样,有54张牌,但是你只能看见最上面的一张牌,每一张牌就相当于布局管理器中的每一层.其
·
CardLayout布局管理器:
CardLayout布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,它把容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件,当然每层都可以利用Panel来实现复杂的用户界面.布局管理器(CardLayout)就象一副叠得整整齐齐的扑克牌一样,有54张牌,但是你只能看见最上面的一张牌,每一张牌就相当于布局管理器中的每一层.其实现过程如下:
//首先,定义面板,为个个面板设置不同的布局,并根据需要在每个面板中放置组件:
panelOne.setLayout(new FlowLayout);
panelTwo.setLayout(new GridLayout(2,1));
//再设置主面板.
CardLayout card = new CardLayout();
panelMain.setLayout(card);
//下一步将开始准备好的面板添加到主面板
panelMain.add("red panel",panelOne);
panelMain.add("blue panel",panelTwo);
//add()方法带有两个参数,第一个为String类型用来表示面板标题,第二个为Panel对象名称.
//完成以上步骤以后,必须给用户提供在卡片之间进行选择的方法.一个常用的方法是每张卡片都包含一个按钮.通常用来控制显示哪张面板.actionListener被添加到按钮..actionPerformed()方法可定义显示哪张卡片.:
card.next(panelMain); //下一个
card.previous(panelMain); //前一个
card.first(panelMain); //第一个
card.last(panelMain); //最后一个
card.show(panelMain,"red panel"); //特定面板
示例
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class calculator{
Frame f;
Panel p1;
Panel p2;
String[] name = {"1","2","3","4","5"};
CardLayout c;
public void init(){
f = new Frame("yz");
p1 = new Panel();
p2 = new Panel();
c = new CardLayout();
p1.setLayout(c);
for(int i=0;i<name .length;i++){
p1.add(name[i],new Button(name[i]));
}
//控制显示上一张的按钮
Button previous = new Button("上一张");
previous.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
c.previous(p1);
}
});
//控制显示下一张的按钮
Button next = new Button("下一张");
next.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
c.next(p1);
}
});
//控制显示第一张的按钮
Button first = new Button("第一张");
first.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
c.first(p1);
}
});
//控制显示最后一张的按钮
Button last = new Button("最后一张");
last.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
c.last(p1);
}
});
//根据card名显示的按钮
Button third = new Button("第三张");
third.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
c.show(p1,"3");
}
});
p2.add(previous);
p2.add(next);
p2.add(first);
p2.add(last);
p2.add(third);
f.add(p1);//默认添加到中间
f.add(p2,BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
public static void main(String[] args){
new calculator().init();
}
}
CardLayout布局管理器能够帮助用户处理两个以至更多的成员共享同一显示空间,它把容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一个组件,当然每层都可以利用Panel来实现复杂的用户界面.布局管理器(CardLayout)就象一副叠得整整齐齐的扑克牌一样,有54张牌,但是你只能看见最上面的一张牌,每一张牌就相当于布局管理器中的每一层.其实现过程如下:
//首先,定义面板,为个个面板设置不同的布局,并根据需要在每个面板中放置组件:
panelOne.setLayout(new FlowLayout);
panelTwo.setLayout(new GridLayout(2,1));
//再设置主面板.
CardLayout card = new CardLayout();
panelMain.setLayout(card);
//下一步将开始准备好的面板添加到主面板
panelMain.add("red panel",panelOne);
panelMain.add("blue panel",panelTwo);
//add()方法带有两个参数,第一个为String类型用来表示面板标题,第二个为Panel对象名称.
//完成以上步骤以后,必须给用户提供在卡片之间进行选择的方法.一个常用的方法是每张卡片都包含一个按钮.通常用来控制显示哪张面板.actionListener被添加到按钮..actionPerformed()方法可定义显示哪张卡片.:
card.next(panelMain); //下一个
card.previous(panelMain); //前一个
card.first(panelMain); //第一个
card.last(panelMain); //最后一个
card.show(panelMain,"red panel"); //特定面板
示例
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class calculator{
Frame f;
Panel p1;
Panel p2;
String[] name = {"1","2","3","4","5"};
CardLayout c;
public void init(){
f = new Frame("yz");
p1 = new Panel();
p2 = new Panel();
c = new CardLayout();
p1.setLayout(c);
for(int i=0;i<name .length;i++){
p1.add(name[i],new Button(name[i]));
}
//控制显示上一张的按钮
Button previous = new Button("上一张");
previous.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
c.previous(p1);
}
});
//控制显示下一张的按钮
Button next = new Button("下一张");
next.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
c.next(p1);
}
});
//控制显示第一张的按钮
Button first = new Button("第一张");
first.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
c.first(p1);
}
});
//控制显示最后一张的按钮
Button last = new Button("最后一张");
last.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
c.last(p1);
}
});
//根据card名显示的按钮
Button third = new Button("第三张");
third.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
c.show(p1,"3");
}
});
p2.add(previous);
p2.add(next);
p2.add(first);
p2.add(last);
p2.add(third);
f.add(p1);//默认添加到中间
f.add(p2,BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
public static void main(String[] args){
new calculator().init();
}
}
更多推荐
已为社区贡献3条内容
所有评论(0)