精华内容
下载资源
问答
  • java中CardLayout的使用方法
    2021-02-27 14:35:49

    import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Card extendsJFrame{/** JFrame的布局管理器是BorderLayout*/JPanel p;//位于中心区域的面板

    JButton b1,b2,b3,b4;//位于南部区域的四个按钮

    JLabel l1,l2,l3,l4;

    CardLayout c;//设置面板p的布局

    Card(String name)

    {super(name);this.setVisible(true);this.setBounds(400,300,400,400);

    p= new JPanel();//实例化p

    c = new CardLayout();//实例化c

    p.setLayout(c);//设置面板p的布局为c,等价于p = new JPanel(c);//实例化4个按钮和标签

    b1 = new JButton("previous");

    b2= new JButton("two");

    b3= new JButton("three");

    b4= new JButton("next");

    l1= new JLabel("first card");

    l2= new JLabel("second card");

    l3= new JLabel("thirth card");

    l4= new JLabel("fourth card");//实例化4个子面板并设定相应背景颜色

    JPanel p1 = newJPanel();

    JPanel p2= newJPanel();

    JPanel p3= newJPanel();

    JPanel p4= newJPanel();

    p1.setBackground(Color.green);

    p2.setBackground(Color.pink);

    p3.setBackground(Color.orange);

    p4.setBackground(Color.lightGray);//把上面4个面板添加到中心面板p中,并把4个面板分别用编号为1,2,3,4代替

    p.add(p1,"1");

    p.add(p2,"2");

    p.add(p3,"3");

    p.add(p4,"4");//把4个标签分别添加到4个子面板中

    p1.add(l1);

    p2.add(l2);

    p3.add(l3);

    p4.add(l4);//实例化位于南部区域的面板,并添加4个按钮

    JPanel psourth = newJPanel();

    psourth.add(b1);

    psourth.add(b2);

    psourth.add(b3);

    psourth.add(b4);//把p,psourth分别添加到本JFrame的中心区域和南部区域

    this.add(p);//等价于this.add(p,BorderLayout.CENTER); 因为默认是把组件添加到中部

    this.add(psourth,BorderLayout.SOUTH);//为按钮b1添加监听器,当被按下时显示面板p中的前一个子面板

    b1.addActionListener(newActionListener()

    {

    @Overridepublic voidactionPerformed(ActionEvent e) {//TODO Auto-generated method stub

    c.previous(p);//显示p中的上一个面板

    }

    });//为按钮b2添加监听器,当被按下时显示面板p中的第2个子面板

    b2.addActionListener(newActionListener()

    {

    @Overridepublic voidactionPerformed(ActionEvent e) {//TODO Auto-generated method stub

    c.show(p, "2");//显示p中代号为2的面板

    }

    });//以下类推

    b3.addActionListener(newActionListener()

    {

    @Overridepublic voidactionPerformed(ActionEvent e) {//TODO Auto-generated method stub

    c.show(p, "3");

    }

    });

    b4.addActionListener(newActionListener()

    {

    @Overridepublic voidactionPerformed(ActionEvent e) {//TODO Auto-generated method stub

    c.next(p);

    }

    });//使用匿名内部类为本Frame添加监听器,当点击关闭按钮时结束程序

    this.addWindowListener(newWindowAdapter()

    {public voidwindowClosing(WindowEvent e)

    {

    System.exit(0);

    }

    });

    }public static voidmain(String[] args) {//TODO Auto-generated method stub

    new Card("My Card");

    }

    }

    更多相关内容
  • CardLayout

    2016-08-21 01:31:14
    用心给你的代码,你终将受用!
  • 主要介绍了Java Swing CardLayout卡片布局的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 主要为大家详细介绍了java布局管理之CardLayout的简单实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • CardLayout 简单实现Demo

    2019-07-29 01:10:59
    NULL 博文链接:https://ljz0898.iteye.com/blog/807160
  • NULL 博文链接:https://alog2012.iteye.com/blog/1613294
  • CardLayout布局实例

    2021-03-22 08:09:04
    CardLayout 对象是容器的布局管理器。它将容器中的每个组件看作一张卡片。一次只能看到一张卡片,而容器充当卡片的堆栈。当容器第一次显示时,第一个添加到 CardLayout 对象的组件为可见组件。卡片的顺序由组件对象...

    CardLayout 对象是容器的布局管理器。它将容器中的每个组件看作一张卡片。一次只能看到一张卡片,而容器充当卡片的堆栈。当容器第一次显示时,第一个添加到 CardLayout 对象的组件为可见组件。

    卡片的顺序由组件对象本身在容器内部的顺序决定。CardLayout 定义了一组方法,这些方法允许应用程序按顺序地浏览这些卡片,或者显示指定的卡片。addLayoutComponent(java.awt.Component, java.lang.Object) 方法可用于将一个字符串标识符与给定卡片相关联,以便进行快速随机访问。

    实例:import java.awt.Frame;

    import java.awt.Button;

    import java.awt.CardLayout;

    import java.awt.Color;

    public class TestCardLayout{

    public static void main(String args[]){

    Frame f = new Frame("CardLayout Example");

    CardLayout cl = new CardLayout();

    f.setLayout (cl);

    Button b[] = new Button[4];

    for(int i = 0; i 

    b[i] = new Button("第" + i + "页");

    f.add(b[i],"page" + i);

    }

    b[0].setBackground(Color.green);

    b[1].setBackground(Color.blue);

    b[2].setBackground(Color.red);

    b[3].setBackground(Color.pink);

    f.pack();

    f.setVisible(true);

    while(true){

    try{

    Thread.sleep(1000);

    }catch(InterruptedException e){

    e.printStackTrace();

    }

    cl.next(f);

    }

    }

    }

    效果图:

    e479466072f276d68c367df5465b6270.png

    展开全文
  • CardLayout允许我们在更复杂的拥有真正的文件夹卡片与一条边相遇的环境里创建大致相同于“卡片式对话框”的布局,我们必须压下一个卡片使不同的对话框带到前面来。在AWT里不是这样的:CardLayout是简单的空的空格,...

    CardLayout允许我们在更复杂的拥有真正的文件夹卡片与一条边相遇的环境里创建大致相同于“卡片式对话框”的布局,我们必须压下一个卡片使不同的对话框带到前面来。在AWT里不是这样的:CardLayout是简单的空的空格,我们可以自由地把新卡片带到前面来。(JFC/Swing库包括卡片式的窗格看起来非常的棒,且可以我们处理所有的细节。)

    d670df81c0e6b15fec6ce6fe4f9bf19d.png

    1. 联合布局(Combining layouts)

    下面的例子联合了更多的布局类型,在最初只有一个布局管理器被程序片或应用程序操作看起来相当的困难。这是事实,但如果我们创建更多的面板对象,每个面板都能拥有一个布局管理器,并且像被集成到程序片或应用程序中一样使用程序片或应用程序的布局管理器。这就象下面程序中的一样给了我们更多的灵活性:

    //: CardLayout1.java

    // Demonstrating the CardLayout

    import java.awt.*;

    import java.applet.Applet;

    class ButtonPanel extends Panel {

    ButtonPanel(String id) {

    sETLayout(new BorderLayout());

    add("Center", new Button(id));

    }

    }

    public class CardLayout1 extends Applet {

    Button

    first = new Button("First"),

    second = new Button("Second"),

    third = new Button("Third");

    Panel cards = new Panel();

    CardLayout cl = new CardLayout();

    public void init() {

    setLayout(new BorderLayout());

    Panel p = new Panel();

    p.setLayout(new FlowLayout());

    p.add(first);

    p.add(second);

    p.add(third);

    add("North", p);

    cards.setLayout(cl);

    cards.add("First card",

    new ButtonPanel("The first one"));

    cards.add("Second card",

    new ButtonPanel("The second one"));

    cards.add("Third card",

    new ButtonPanel("The third one"));

    add("Center", cards);

    }

    public boolean action(Event evt, Object arg) {

    if (evt.target.equals(first)) {

    cl.first(cards);

    }

    else if (evt.target.equals(second)) {

    cl.first(cards);

    cl.next(cards);

    }

    else if (evt.target.equals(third)) {

    cl.last(cards);

    }

    else

    return super.action(evt, arg);

    return true;

    }

    } ///:~

    这个例子首先会创建一种新类型的面板:BottonPanel(按钮面板)。它包括一个单独的按钮,安放在BorderLayout的中央,那意味着它将充满整个的面板。按钮上的标签将让我们知道我们在CardLayout上的那个面板上。

    在程序片里,面板卡片上将存放卡片和布局管理器CL因为CardLayout必须组成类,因为当我们需要处理卡片时我们需要访问这些句柄。

    这个程序片变成使用BorderLayout来取代它的默认FlowLayout,创建面板来容纳三个按钮(使用FlowLayout),并且这个面板安置在程序片末尾的“North”。卡片面板增加到程序片的“Center”里,有效地占据面板的其余地方。

    当我们增加BottonPanels(或者任何其它我们想要的组件)到卡片面板时,add()方法的第一个自变量不是“North”,“South”等等。相反的是,它是一个描述卡片的字符串。如果我们想轻击那张卡片使用字符串,我们就可以使用,虽然这字符串不会显示在卡片的任何地方。使用的方法不是使用action();代之使用first()、next()和last()等方法。请查看我们有关其它方法的文件。

    在Java中,使用的一些卡片式面板结构十分的重要,因为(我们将在后面看到)在程序片编程中使用的弹出式对话框是十分令人沮丧的。对于Java的程序片而言,CardLayout是唯一有效的取得很多不同的“弹出式”的窗体。

    展开全文
  • 卡片布局能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像一叠牌,组件叠在一起,初始时显示该空间中第一个添加的组件,通过CardLayout类提供的方法可以切换该空间中显示的组件。 可以通过调用...

    一、简介

    卡片布局能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像一叠牌,组件叠在一起,初始时显示该空间中第一个添加的组件,通过CardLayout类提供的方法可以切换该空间中显示的组件。

    可以通过调用CardLayout的next方法翻转到指定容器的下一张卡片,如果当前的可见卡片是最后一个,则翻转到布局的第一张卡片。同样也可以使用previous方法翻转到指定容器的前一张卡片。除了这两个方法,还有last、first方法可以翻转到最后一张、第一张卡片,我们也可以直接使用show方法翻转到指定名称的卡片。

    二、构造函数

    //组件距容器左右边界和上下边界的距离为缺省值0个像素

    public CardLayout();

    //组件距容器左右边界和上下边界的距离为指定值

    public CardLayout(int hgap, int vgap);

    三、类及常用方法

    //翻转到容器的第一张卡片

    public void first(Container parent)

    //翻转到容器的最后一张卡

    public void last(Container parent)

    //翻转到容器的前一张卡片

    public void previous(Container parent)

    //翻转倒容器的后一张卡片

    public void next(Container parent)

    //显示指定名称的卡片

    public void show(Container parent, String name)

    public int getHgap()

    public void setHgap(int hgap)

    public int getVgap()

    public void setVgap(int vgap)

    四、举例

    import java.awt.BorderLayout;

    import java.awt.CardLayout;

    import java.awt.Color;

    import java.awt.Insets;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import javax.swing.JButton;

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import javax.swing.JPanel;

    public class CardLayout02 extends JFrame {

        private static final long serialVersionUID = 1L;

        // 主要的JPanel,该JPanel的布局管理将被设置成CardLayout

        private JPanel cardPanel = null;

        // CardLayout布局管理器

        private CardLayout card = null;   

        // 放按钮的JPanel

        private JPanel btnPanel = null;

        private JButton btn_previous = null; // 上一个

        private JButton btn_next = null; // 下一个

        private JButton b_1 = null, b_2 = null, b_3 = null; // 三个可直接翻转到JPanel组件的按钮

        private JPanel p_1 = null, p_2 = null, p_3 = null; // 要切换的三个JPanel

        public CardLayout02() {

           super("CardLayout Test");

           /** 创建一个具有指定的水平和垂直间隙的新卡片布局 */

           card = new CardLayout(5, 5);

           cardPanel = new JPanel(card); // JPanel的布局管理将被设置成CardLayout

           p_1 = new JPanel();

           p_2 = new JPanel();

           p_3 = new JPanel();

           p_1.setBackground(Color.RED);

           p_2.setBackground(Color.ORANGE);

           p_3.setBackground(Color.GREEN);

           p_1.add(new JLabel("JPanel_1"));

           p_2.add(new JLabel("JPanel_2"));

           p_3.add(new JLabel("JPanel_3"));

           cardPanel.add(p_1, "p1");

           cardPanel.add(p_2, "p2");

           cardPanel.add(p_3, "p3");

           btnPanel = new JPanel(); // 构造放按钮的JPanel

           btn_previous = new JButton("< 上一个");

           btn_next = new JButton("下一个 >");

           b_1 = new JButton("1");

           b_2 = new JButton("2");

           b_3 = new JButton("3");

           b_1.setMargin(new Insets(2, 2, 2, 2));

           b_2.setMargin(new Insets(2, 2, 2, 2));

           b_3.setMargin(new Insets(2, 2, 2, 2));

           btnPanel.add(btn_previous);

           btnPanel.add(b_1);

           btnPanel.add(b_2);

           btnPanel.add(b_3);

           btnPanel.add(btn_next);

           /** 下面是翻转到卡片布局的某个组件,可参考API中的文档 */

           btn_previous.addActionListener(new ActionListener() { // 上一步的按钮动作

               public void actionPerformed(ActionEvent e) {

                  card.previous(cardPanel);

               }

           });

           btn_next.addActionListener(new ActionListener() { // 下一步的按钮动作

               public void actionPerformed(ActionEvent e) {

                  card.next(cardPanel);

               }

           });

           b_1.addActionListener(new ActionListener() { // 直接翻转到p_1

               public void actionPerformed(ActionEvent e) {

                  card.show(cardPanel, "p1");

               }

           });

           b_2.addActionListener(new ActionListener() { // 直接翻转到p_2

               public void actionPerformed(ActionEvent e) {

                  card.show(cardPanel, "p2");

               }

           });

           b_3.addActionListener(new ActionListener() { // 直接翻转到p_3

               public void actionPerformed(ActionEvent e) {

                  card.show(cardPanel, "p3");

               }

           });

           this.getContentPane().add(cardPanel);

           this.getContentPane().add(btnPanel, BorderLayout.SOUTH);

           this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

           this.setSize(300, 200);

           this.setVisible(true);

        }

        public static void main(String[] args) {

           new CardLayout02();

        }

    }

     

    展开全文
  • CardLayout示例程序

    2020-09-13 20:35:17
    The following is anexample of theJava codeyou can use to show theCardLayoutlayoutmanager ... 以下是可用于显示CardLayout布局管理器的Java代码示例。 Java代码 ( Java Code ) The JFrame uses a BorderLayou...
  • java学习awt:布局管理器1.CardLayout布局管理器:2.做一个案例:5个button按钮:控制一叠卡片:决定的最上面的卡片是谁:2.效果图: 1.CardLayout布局管理器: 将加入容器的所有组件:看成一叠卡片 所有组件:只有最...
  • GUI之CardLayout

    2019-11-22 14:00:05
    package gui; import java.awt.BorderLayout; import java.awt....import java.awt.CardLayout; import java.awt.Frame; import java.awt.Label; import java.awt.Panel; import java.awt.event.ActionEvent; ...
  • Frame frame = new Frame();... CardLayout cardLayout = new CardLayout(); panel.setLayout(cardLayout); String[] s = {"第一张", "第二张", "第三张"}; for (int i = 0; i < 3; i++) { pane...
  • } } [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i8PfG1Tg-1612105856214)(D:\u(backups)]\note\java GUI\img\21-1.JPG) 2、CardLayout布局管理器 CardLayout跟踪一 个构件的卡片组。...
  • CardLayout卡式布局管理器
  • java.lang.Objectjava.awt.CardLayout所有已实现的接口:LayoutManager, LayoutManager2, Serializablepublic class CardLayoutextends Objectimplements LayoutManager2, SerializableCardLayout 对象是容器的布局...
  • Java卡片布局(CardLayout

    千次阅读 2021-06-13 21:36:43
    //使用网格布局容器 static CardLayout crd = new CardLayout(5,10); //定义卡片布局对象crd static JButton bt1 = new JButton("第一页"); static JButton bt2 = new JButton("上一页"); static JButton bt3 ...
  • CardLayout(卡片布局) CardLayout 布局管理器以时间而非空间来管理它里面的组件,它将加入容器的所有组件看成一叠卡片(每个卡片其实就是一个组件),每次只有最上面的那个 Component 才可见。就好像一副扑克牌,...
  • 创建一个Panel容器p1,并设置其布局管理器为CardLayout,用来存放多张卡片 CardLayout cardLayout = new CardLayout(); Panel p1 = new Panel(); p1.setLayout(cardLayout); //4.往p1中存储5个Button按钮,名字从...
  • Java开发GUI之CardLayout卡片布局CardLayout布局允许进行多套界面的设计,通过切换界面来实现布局样式的改变。CardLayout类似与一叠卡片,默认最先添加的在前面,界面始终只展示一个卡片。示例如下:static Panel ...
  • 卡片布局能夠讓多個組件共享同一個顯示空間,共享空間的組件之間的關系就像一疊牌,組件疊在一起,初始時顯示該空間中第一個添加的組件,通過CardLayout類提供的方法可以切換該空間中顯示的組件。 2、 使用...
  • Java中CardLayout的使用

    2021-02-26 15:03:04
    1 importjava.awt....2 importjava.awt.CardLayout;3 importjava.awt.Color;4 importjava.awt.Dimension;5 importjava.awt.Font;6 importjava.awt.Graphics;7 importjava.awt.GridLayout;8 importjava.awt...
  • 当我创建我的GUI时,我使用cardlayout来保存我的不同面板,因为我相信很多人都知道.这会将我的屏幕设置为我最大面板的宽度和高度.这会导致我的第一个屏幕的美观问题,这个屏幕比SudokuPanel和CalkuroPanel小得多.当我换...
  • CardLayout(卡片布局) 从概念上讲,CardLayout管理的每个组件都像扑克牌或堆栈中的卡,其中在任何时候都只有顶部的卡可见。也就是说一次仅可见一个组件。就像一副扑克牌堆在桌子上面,你只能看到第一张,如果你想...
  • Java CardLayout

    2021-04-16 15:58:16
    Java CardLayout1 Java CardLayout的介绍CardLayout类以这样的方式管理组件:一次仅可见一个组件。它将每个组件都视为卡,这就是为什么它被称为CardLayout的原因。2Java CardLayout的构造方法构造方法描述CardLayout...
  • CardLayout(卡片布局管理器)能够帮助用户实现多个成员共享同一个显不空间,并且一次只显示一个容器组件的内容。 CardLayout 布局管理器将容器分成许多层,每层的显示空间占据整个容器的大小,但是每层只允许放置一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,371
精华内容 2,148
关键字:

cardlayout

友情链接: 出租车计价系统.zip