java学习awt:布局管理器CardLayout

java学习awt:布局管理器CardLayout,第1张

java学习awt:布局管理器CardLayout

java学习awt:布局管理器
    • 1.CardLayout布局管理器:
    • 2.做一个案例:5个button按钮:控制一叠卡片:决定的最上面的卡片是谁:
    • 完整代码:
    • 2.效果图:

1.CardLayout布局管理器:

将加入容器的所有组件:看成一叠卡片
所有组件:只有最上面才能看见

卡片:有顺序关系,最上局,第二层,等等
cardLayout.previous(p1)//返回卡片的前一张
cardLayout.next(p1);//
cardLayout.first(p1);//
cardLayout.last(p1);//
cardLayout.show(p1,“第三张”);//返回卡片指定一张

CardLayout cardLayout=new CardLayout();//创建CardLayout对象:布局管理器

2.做一个案例:5个button按钮:控制一叠卡片:决定的最上面的卡片是谁:

原理:
创建一个容器:放5个组件,
这个容器:设置为:CardLayout布局管理
再添加内容:

String[] name={"第一张","第二张","第三张","第四张","第五张"};

for(int i=0;i<5;i++)
{
    p1.add(name[i],new Button(name[i]));//可以写成 p1.add(new Button(name[i]));//先添加的为最上面,后面按顺序往下层;最上面;第二层;等等

}
sc.add(p1);

再创建一个容器:放五个按钮

Panel p2=new Panel();
Button b1=new Button("上一张");
        Button b2=new Button("下一张");
        Button b3=new Button("第一张");
        Button b4=new Button("最后一张");
        Button b5=new Button("第三张");

然后:添加监听事件:

ActionListener listener=new ActionListener() {}//创建监听对象

ActionListener listener=new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                String actioncommand=e.getActionCommand();// 获取按钮上的文字

switch (actioncommand){  

    case "上一张":        //如果按钮文字是"上一张":执行cardLayout.previous(p1);
    //cardLayout.previous(p1);返回卡片的前一张,
        cardLayout.previous(p1);
    break;
    case "下一张":
        cardLayout.next(p1);
        break;
    case "第一张":
        cardLayout.first(p1);
        break;
    case "最后一张":
        cardLayout.last(p1);
        break;
    case "第三张":
        cardLayout.show(p1,"第三张");
        break;

}


            }
        };


         b1.addActionListener(listener);
        b2.addActionListener(listener);
        b3.addActionListener(listener);
        b4.addActionListener(listener);
        b5.addActionListener(listener);
完整代码:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class rtjhy {


    public static void main(String[] args) {



        frame sc=new frame("chokolo");

        sc.setBounds(100,100,300,300);
        Panel p1=new Panel();

     CardLayout cardLayout=new CardLayout();

p1.setLayout(cardLayout);//设置布局管理器

  String[] name={"第一张","第二张","第三张","第四张","第五张"};

for(int i=0;i<5;i++)
{
    p1.add(name[i],new Button(name[i]));//

}
sc.add(p1);



Panel p2=new Panel();
Button b1=new Button("上一张");
        Button b2=new Button("下一张");
        Button b3=new Button("第一张");
        Button b4=new Button("最后一张");
        Button b5=new Button("第三张");


        ActionListener listener=new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                String actioncommand=e.getActionCommand();//

switch (actioncommand){

    case "上一张":
        cardLayout.previous(p1);
    break;
    case "下一张":
        cardLayout.next(p1);
        break;
    case "第一张":
        cardLayout.first(p1);
        break;
    case "最后一张":
        cardLayout.last(p1);
        break;
    case "第三张":
        cardLayout.show(p1,"第三张");
        break;

}


            }
        };


         b1.addActionListener(listener);
        b2.addActionListener(listener);
        b3.addActionListener(listener);
        b4.addActionListener(listener);
        b5.addActionListener(listener);

        p2.add(b1);
        p2.add(b2);
        p2.add(b3);
        p2.add(b4);
        p2.add(b5);
sc.add(p2,BorderLayout.SOUTH); //注意:位置南边,如果:sc.add(p2);覆盖了p1的位置,p1就看不了了

sc.setVisible(true);
    }
}

2.效果图:


点击下一张按钮

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5079812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存