精华内容
下载资源
问答
  • 主要介绍了Java Swing CardLayout卡片布局的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Google自家应用纷纷采用卡片布局(Google Now,Google Plus,Google Play)。 在最新的QQ空间、新浪微博、豌豆荚中也可以见到卡片式设计的影子 下面介绍一种简单实现卡片布局的方式 list_item.xml <...
  • QT5实现的卡片布局,基于QLayout的CardStackLayout,实现动画效果。
  • 这是一款CSS3商城购物卡片布局动画特效。该特效使用Bootstrap来进行网格布局,然后通过css3来实现鼠标悬停时的动画特效,效果非常炫酷。
  • 小程序实现:TabBar,卡片布局,箭头样式,头像,星星评分 练习练习
  • 主要为大家详细介绍了Android控件CardView实现卡片布局,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • CSS3天气预报卡片布局代码是一款带风速,温度,湿度,日期的天气卡片布局代码。
  • 主要介绍了Java编程使用卡片布局管理器,结合实例形式分析了java基于swing组件的卡片布局管理器具体实现与使用技巧,需要的朋友可以参考下
  • ios-卡片布局-Swift.zip

    2019-07-11 19:32:51
    卡片布局,支持水平、垂直滚动。 亲! 喜欢的话请到github上给个star吧 https://github.com/Pr-Chen/CardLayout-Swift 还有OC版本哦,请访问:https://github.com/Pr-Chen/CardLayout-OC 用法简单: let ...
  • 我用的是4.1.2安卓jar包,我下载的github源码,但不理解,后在程序上跑的时候出错,我修改了一下,现在我跑出来了,并且有文字内容,上下移动,点击可以链接,滑动删除,不会报错了。
  • 卡片布局

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

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

    1.CardLayout类的常用构造函数及方法

     

    2、  使用CardLayout类提供的方法可以切换显示该空间中的组件

    (1) 定义使用卡片布局的容器                          

    例如:Panel cardPanel=new Panel();

    (2)      定义卡片对象:CardLayout 布局对象名称=new CardLayout();

    例如:CardLayout card=new CardLayout();

    (3)      设置使用卡片布局的容器为卡片布局:

    格式:容器名称.setLayout(布局对象名称);

    例如:cardPanel.setLayout(card);

    (4)      设置容器中显示的组件

    例如:for (int i = 0; i < 5; i++) {

                                cardPanel.add(newJButton("按钮"+i));

                       }

    (5)      定义响应事件代码,让容器显示相应的组件

    格式:

    n  布局对象名称.next(容器名称)   显示容器中当前组件之后的一个组件,若当前组件为最后添加的组件,则显示第一个组件,即卡片组件显示是循环的。

    n  布局对象名称.first(容器名称)   显示容器中第一个组件

    n  布局对象名称.last(容器名称)   显示容器中最后一个组件

    n  布局对象名称.previous(容器名称)   显示容器中当前组件之前的一个组件,若当前组件为第一个添加的组件,则显示最后一个组件,即卡片组件显示是循环的。

     

    例如:

    card.next(cardPanel);

    card.previous(cardPanel);

             card.first(cardPanel);      

             card.last(cardPanel);      

     

    实例一:卡片的切换

    窗体默认边界布局,一个面板以卡片布局,面板添加五个按钮,该面板添加到center位置,另一个面板添加两个按钮,两个按钮添加事件来切换显示CENTER位置中的面板的组件

     

    // cardlayout.java

    import java.awt.*;

    import javax.swing.*;

    import java.awt.event.*;//引入事件包

     

    //定义类时实现监听接口

    public class cardlayout extendsJFrame implements ActionListener{

             JButton nextbutton;

             JButton preButton;

        Panel cardPanel=new Panel();

        Panel controlpaPanel=new Panel();

             //定义卡片布局对象

        CardLayout card=new CardLayout();

             //定义构造函数

             public cardlayout() {

                       super("卡片布局管理器");

                       setSize(300, 200);

                       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                       setLocationRelativeTo(null);

                       setVisible(true);

     

                       //设置cardPanel面板对象为卡片布局

                       cardPanel.setLayout(card);    

     

                       //循环,在cardPanel面板对象中添加五个按钮

                       //因为cardPanel面板对象为卡片布局,因此只显示最先添加的组件

                       for (int i = 0; i < 5; i++) {

                                cardPanel.add(new JButton("按钮"+i));

                       }

                       //实例化按钮对象

                       nextbutton=new JButton("下一张卡片");

                       preButton=new JButton("上一张卡片");

     

                       //为按钮对象注册监听器

                       nextbutton.addActionListener(this);

                       preButton.addActionListener(this);

     

                       controlpaPanel.add(preButton);

                       controlpaPanel.add(nextbutton);

     

                       //定义容器对象为当前窗体容器对象

                       Container container=getContentPane();

     

                       //将 cardPanel面板放置在窗口边界布局的中间,窗口默认为边界布局

                       container.add(cardPanel,BorderLayout.CENTER);

                       // 将controlpaPanel面板放置在窗口边界布局的南边,

                       container.add(controlpaPanel,BorderLayout.SOUTH);

             }

     

             //实现按钮的监听触发时的处理

             public void actionPerformed(ActionEvent e){

                       //如果用户单击nextbutton,执行的语句

                       if (e.getSource()==nextbutton){

                                //切换cardPanel面板中当前组件之后的一个组件

                                //若当前组件为最后添加的组件,则显示第一个组件,即卡片组件显示是循环的。

                                card.next(cardPanel);     

                       }

                       if (e.getSource()==preButton){

                                //切换cardPanel面板中当前组件之前的一个组件

                                //若当前组件为第一个添加的组件,则显示最后一个组件,即卡片组件显示是循环的。

                                card.previous(cardPanel);

                       }

             }

             public static void main(String[] args) {

                       cardlayout kapian=new cardlayout();

                      

             }

     }

     

    程序显示结果如下图所示,单击“上一张”、“下一张”等按钮可以上面的面板中显示不同的按钮来。

     

     

     

    方法二步骤:

    (1)      定义使用卡片布局的容器

    例如:Panel cardPanel=new Panel();

    (2)      定义卡片对象:CardLayout 布局对象名称=newCardLayout();

    例如:CardLayout card=new CardLayout();

    (3)      设置使用卡片布局的容器为卡片布局:

    格式:容器名称.setLayout(卡片对象名称);

    例如:cardPanel.setLayout(card);

    (4)      设置容器中显示的组件,同时为组件命名对应的卡片名称

    格式: 容器名称. Add(卡片名称,组件名称)

    例如:for (int i = 0; i < 4; i++) {

                                cardPanel.add(“0”,newJButton("按钮"+i));

                       }

    (5)      定义响应事件代码,让容器显示相应的组件

    格式:卡片对象名称.show(容器名称,卡片名称)

    例如:card.show(cardPanel,”0”);

     

             实例二:使用CardLayout类的show方法显示组件。

    窗体默认边界布局,一个面板以卡片布局,面板上添加4个按钮,该面板添加到CENTER位置,另一个面板添加4个按钮,这4个按钮添加事件来切换显示CENTER位置中的面板的组件按钮。

     

    // cardlayout1.java

    import java.awt.*;

    import javax.swing.*;

    import java.awt.event.*;//引入事件包

     

    //定义类时 实现监听接口

    public class cardlayout1extends JFrameimplements ActionListener{

             JButton b0,b1,b2,b3;

        Panel cardPanel=new Panel();

        Panel controlpaPanel=newPanel();

             //定义卡片布局对象

        CardLayout card=newCardLayout();

             //定义字符数组,为卡片命名

             StringcardName[]={"0","1","2","3"};

             //定义构造函数

             public cardlayout1() {

                       super("卡片布局管理器");

                       setSize(400,200);

                       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                       setLocationRelativeTo(null);

                       setVisible(true);

     

                       //设置cardPanel面板对象为卡片布局

                       cardPanel.setLayout(card);    

     

                       //循环,在cardPanel面板对象中添加4个按钮

                       //因为cardPanel面板对象为卡片布局,因此初始时显示最先添加的组件

                       for (int i = 0; i< 4; i++) {

                                //面板中添加的每个按钮对应设置一个卡片名

                                cardPanel.add(cardName[i],newJButton("按钮"+i));

                       }

                       //实例化按钮对象

                       b0=newJButton("0");

                       b1=newJButton("1");

                       b2=newJButton("2");

                       b3=newJButton("3");

     

                       //为按钮对象注册监听器

                       b0.addActionListener(this);

                       b1.addActionListener(this);

                       b2.addActionListener(this);

                       b3.addActionListener(this);

     

                       controlpaPanel.add(b0);

                       controlpaPanel.add(b1);

                       controlpaPanel.add(b2);

                       controlpaPanel.add(b3);

                       //定义容器对象为当前窗体容器对象

                       Containercontainer=getContentPane();

     

                       //将 cardPanel面板放置在窗口边界布局的中间,窗口默认为边界布局

                       container.add(cardPanel,BorderLayout.CENTER);

                       // 将controlpaPanel面板放置在窗口边界布局的南边,

                       container.add(controlpaPanel,BorderLayout.SOUTH);

             }

     

             //实现按钮的监听触发时的处理

             public voidactionPerformed(ActionEvent e){

                       //用户单击b0按钮时执行的语句

                       if(e.getSource()==b0){

                                //通过show()方法中的卡片名称,显示容器中的组件。

                                card.show(cardPanel,cardName[0]);     

                       }

                       if(e.getSource()==b1){

                                card.show(cardPanel,cardName[1]);     

                       }

                       if(e.getSource()==b2){

                                card.show(cardPanel,cardName[2]);     

                       }

                       if(e.getSource()==b3){

                                card.show(cardPanel,cardName[3]);     

                       }

             }

             public static voidmain(String[] args) {

                       cardlayout1kapian=new cardlayout1();

                      

             }

     }

     

    程序执行结果:

    展开全文
  • Android卡片布局实现

    2016-02-24 20:32:07
    这里测试已经通过,卡片用的是button,线性布局,也有其它实现方法大家一起交流。
  • java卡片布局的简单案例

    热门讨论 2010-11-17 16:33:45
    在网上查了很多资料,关于JAVA卡片布局的资料比较少,很多都只是提一下,这是一个简单明了的卡片布局案例,相信你看过之后一定能明白
  • 常见卡片布局

    千次阅读 2020-05-29 21:37:16
    卡片左右两端对齐,间距相同,默认换行,卡片增减不影响布局 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,...

    效果如图

    需求:
    卡片左右两端对齐,间距相同,默认换行,卡片增减不影响布局
    在这里插入图片描述

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
      <!-- 引入样式 -->
      <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
      <!-- 引入组件库 -->
      <script src="https://unpkg.com/element-ui/lib/index.js"></script>
      <style>
        * {
          margin: 0;
          padding: 0;
          box-sizing: border-box;
        }
        body {
          padding: 50px 200px;
          color: #455a64;
        }
        /* 给 margin 负值,向左右各增加15px */
        .row {
          display: flex;
          flex-wrap: wrap;
          margin: 0 -15px;
        }
        .row .card {
          width: 100%;
          max-width: 25%;
          padding: 0 15px;
          margin-bottom: 30px;
        }
        .row .card-body {
          display: flex;
          border-radius: 4px;
          padding: 30px;
          border: 1px solid #EBEEF5;
          box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
          
        }
        .row .card .icon {
          width: 60px;
          font-size: 30px;
        }
        .row .card .content {
          flex: 1;
          text-align: center;
        }
        .page-content {
          width: 100%;
          height: 200px;
          margin-top: 20px;
          border-radius: 4px;
          border: 1px solid #EBEEF5;
          box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
        }
      </style>
    </head>
    <body>
      <div id="app">
        <div class="row">
          <div class="card" v-for="item in 6" :key="item">
            <div class="card-body">
              <div class="icon">
                <i class="el-icon-shopping-cart-full"></i>
              </div>
              <div class="content">
                <div>$88888</div>
                <div>Revenue</div>
              </div>
            </div>
          </div>
        </div>
        <div class="page-content"></div>
      </div>
    </body>
    <script>
      new Vue({
        el: '#app'
      })
    </script>
    </html>
    
    展开全文
  • 采用卡片模式,设计师给出的完美设计稿是 显示一行5个卡片,收起左侧菜单与否都展示5个 但是有点经验的前端就知道 这个需求没设计师给的这么简单(虽说后面改的时候也针对于自适应的方案纠结了一天的工期????) 看到...

    上设计稿

    设计稿大概.gif

    采用卡片模式,设计师给出的完美设计稿是
    显示一行5个卡片,收起左侧菜单与否都展示5个
    但是有点经验的前端就知道
    这个需求没设计师给的这么简单(虽说后面改的时候也针对于自适应的方案纠结了一天的工期😊)

    看到这个需求首先我们第一想到的肯定是自适应的王者:flex

    1.卡片自适应 —— flex

    Dom
    <div class="card-wrap">
        <div class="card-context card-add">+</div>
        <!-- vue的遍历,目的是创造data.length个数的card -->
        <div class="card-context"
            v-for="item in data" 
            :key="item.id"
        >
            card
        </div>      
    </div>
    
    CSS
    .card-wrap {
      display: flex;
      flex-wrap: wrap;
      justify-content: start;
    }
    .survey-card-context {
        flex: 1;
        width: 300px;
        min-width: 300px;
        height: 210px;
        margin: 10px;
    }
    

    然后写出了这样的效果

    demo1.gif

    看出问题了吗?
    最右侧在card填充不完全的时候,出了一大块空缺,正常审美都忍不了啊!

    简单,搞一个justify-content
    center/space-around/space-between/space-evenly
    这么多属性,总有一个能解决问题

    center
    .card-wrap {
      /*变更*/
      justify-content: center;
    }
    

    center.png

    space-around
    .card-wrap {
      /*变更*/
      justify-content: space-around;
    }
    

    space-around.png

    space-between
    .card-wrap {
      /*变更*/
      justify-content: space-between;
    }
    

    space-between.png

    这就没有一个长得和设计稿像的啊???
    诶?是不是我的max-length有问题?固定宽了,让宽度自适应呢?

    去掉max-length的效果

    宽度自适应.png
    最后一行感觉怎么回事?!
    这个完全不大行啊~
    心头一紧,赶紧去查了下网上对于card自适应的解决方案。
    然后看到了某大佬css计算宽度的复杂方案。加减的多了,我一头雾水。
    去了一趟厕所回来的茅塞顿开
    最后一行缺几个,那我补几个空div撑开啊。

    妙,说干就干
    因为我有收起展开,本来就有写resize的方法,直接在resize里写计算就好了。

    2.卡片自适应Max —— flex + 空白card填充

    DOM
    <div class="card-wrap">
        <div class="card-context card-add">+</div>
        <!-- vue的遍历,目的是创造data.length个数的card -->
        <div class="card-context" v-for="item in data" :key="item.id">
        card
        </div>
        <!-- vue的if语句,目的是添加空card块占位 -->
        <div class="card-context no-border" v-if="lastRowBlankColumn >= 1"></div>
        <div class="card-context no-border" v-if="lastRowBlankColumn >= 2"></div>
        <div class="card-context no-border" v-if="lastRowBlankColumn >= 3"></div>
        <div class="card-context no-border" v-if="lastRowBlankColumn >= 4"></div>
    </div>
    
    CSS
    .card-wrap {
      display: flex;
      flex-wrap: wrap;
      justify-content: start;
    }
    .card-context {
      flex: 1;
      width: 300px;
      min-width: 300px;
      height: 100px;
      margin: 10px;
      border: solid 3px pink;
    }
    .card-context.no-border {
      border: none;
    }
    
    JS
    function resize() {
        // 以card父元素的宽为参考
        const dom = this.$refs.cardListWrap;
        let domWidth = dom.offsetWidth;
        // 最少2列
        let columnNo = 2;
        if (domWidth >= 1020 && domWidth < 1340) {
        // 3列
            columnNo = 3;
        } else if (domWidth >= 1340 && domWidth < 1660) {
        // 4列
            columnNo = 4;
        } else if (domWidth >= 1660) {
        // 最多5列
            columnNo = 5;
        }
        // 分页器有选择一页多少个的配置
        // 新增card的块
        // totalBlock是关于这部分的计算,计算当前页总共有几个card
        const totalBlock =
        this.page.currentPage === 1
            ? this.data.length + 1
            : this.data.length;
        // lastRowBlankColumn是计算最后一行需要补几个空白块
        this.lastRowBlankColumn =
        totalBlock % columnNo > 0 ? columnNo - (totalBlock % columnNo) : 0;
    },
    
    效果

    card 宽度自适应屏幕,用min-width去约束card,屏幕会尽量排多个。拉伸card的width填充。且最后一行也会正常的card显示。

    计算填充空白card.gif

    做的这么完美的适配方案,我去和产品&设计小姐姐们验收,然后她们说:丑???
    她们不希望card的宽度变更!!!
    我???大费周章???

    最后变更
    .card-wrap {
      /* 变更 */
      justify-content: center;
    }
    .card-context {
        /* 新增 */
        max-width: 300px;
    }
    

    不,我不屈服,我觉得flex不可能容忍我需要加js才能解决这么简单的问题
    果真我在知乎看到一篇《如何实现同等间隙的卡片布局》的文章中找到了解决方案:flex-grow

    3.卡片自适应Max Pro —— flex-grow

    .card-wrap:after {
        /* 新增 */
        content: "";
        display: block;
        flex-grow: 99999;
    }
    

    删除原有空白div的逻辑和相关在resize的代码,实现的简简单单。
    当然这个只限制在固定card宽的模式下
    如果不固定card宽度,这个方案不生效。

    4.卡片自适应Pro —— grid

    其实中间还去尝试了grid布局,grid布局轻轻松松几行css就能解决最后一行缺失空白的问题,但是因为兼容性的问题没有采用。
    具体可以查看阮老师的《CSS Grid 网格布局教程》

    这个故事告诉我:有空要好好研究一下flex布局的奇技淫巧
    如果大家有更好的方式,一定要在评论里留言赐教呀~

    展开全文
  • javaScript 卡片布局

    2009-03-12 10:25:22
    javaScript 卡片布局卡片布局卡片布局
  • 【css常用布局】卡片布局(小白向) 说明: 本次布局需要先掌握flex布局 效果如图: 灰色的块就是一个一个的小卡片,把需要呈现的内容填充进去即可。 实现原理: 布局分析 html部分 <div class="wrap"> &...

    说明:

    本次布局需要先掌握flex布局

    效果如图:

    卡片布局
    灰色的块就是一个一个的小卡片,把需要呈现的内容填充进去即可。

    实现原理:

    布局分析
    卡片布局分析

    html部分

    <div class="wrap">
    	<div class="card_wrap">
    		<div class="card_item">
    			<div class="card_content"></div>
    		</div>
                  // ...... 中间就省略了,想有多少卡片就复制多少
    		<div class="card_item">
    			<div class="card_content"></div>
    		</div>
    	</div>
    </div>
    

    css部分

    <style type="text/css">
    	.wrap { // 这个只是让整体在页面居中展示
    		display: flex;
    		align-items: center;
    		flex-direction: column;
    		justify-content: center;
    		height: 100%;
    		padding: 8px;
    	}
    	
    	.card_wrap { // 卡片容器
    		display: flex;
    		flex-wrap: wrap;
    		width: 60%;
    	}
    	
    	.card_item { // 每个卡片
    		flex-basis: 25%;
    		margin-bottom: 16px;
    		padding: 0px 8px;
    		box-sizing: border-box;
    	}
    	
    	.card_content { // 卡片内容
    		background-color: rgba(0, 0, 0, 0.3);
    		border-radius: 2px;
    		height: 80px;
    		width: 100%;
    	}
    </style>
    

    有更好的方法欢迎小伙伴补充讨论。

    展开全文
  • Java布局管理—卡片布局(CardLayout)

    千次阅读 2019-07-22 11:17:27
    卡片布局能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像一叠牌,组件叠在一起,初始时显示该空间中第一个添加的组件,通过CardLayout类提供的方法可以切换该空间中显示的组件。 构造方法: ...
  • Flutter 卡片布局

    2019-12-16 18:14:16
    appBar: new AppBar(title: new Text('卡片布局')), body: new Center( child:card, ), ), ); } } import 'dart:io'; import 'package:flutter/material.dart'; void main() => runApp(new MyApp...
  • !... ...请问怎么实现卡片的切换:(我在容器中设了两个jpanel面板,第一个是卡片布局,里面放了五个组件;第二个面板放了五个按钮) 就是我想知道点击按钮,怎么切换到别的卡片???????
  • * 卡片布局知识点: * 1.卡片布局简单理解成,几张扑克牌堆叠在一起,默认显示最先存放的! * 2.卡片布局还有其他的有参构造函数! * 3.卡片布局与其他布局稍微有所不同,需要调用这个布局对象进行互动! * 步骤: ...
  • LayUI的卡片布局以及超链接带参跳转

    千次阅读 2020-12-15 15:18:12
    1. 怎么使用layui的卡片布局 2. 点击卡片布局中的卡片怎么跳转到对应tab页 3. 跳转怎么携带卡片中的内容作为参数 下面进入正文: 项目背景:tab页显示的数据为待审核关键字表中的数据,tab的header部分有几个单选...
  • Android卡片布局的两种实现方式

    万次阅读 2017-01-17 15:31:08
    卡片布局可以单独使用,也可以放到ListView和RecyclerView中当做列表项里的内容来使用。本文都是放到ListView中使用。 一、使用ShapeDrawable资源实现卡片布局 实现效果图: (1)list_item.xml这个文件是用来设置...
  • swing卡片布局

    2012-11-26 11:12:58
    用于swing的卡片布局,效果很漂亮!哈哈
  • QT5 实现卡片布局(CardStackLayout)

    千次阅读 2018-08-26 09:42:05
    模拟天气,讯飞语音播报,卡片布局。现在开始慢慢更新,作为备忘录。 布局基类 QLayout QLayout是QT所有布局的基类,要编写自己的布局类,您必须定义以下内容: 数据结构以存储由布局处理的项。每一项都是...
  • flutter之卡片布局

    2019-08-16 13:32:31
    '卡片布局' ) , ) , body : Center ( child : card , ) , ) , ) ; } } 代码中使用了一个垂直布局组件Column组件,然后利用了ListTile实现内部列表,这里需要说明的是ListTile不光可以使用...
  • 这是一款效果非常炫酷的Material Design风格动态网格卡片布局UI设计效果。在该效果中鼠标滑过卡片时会有阴影效果,当浏览器尺寸改变时,卡片大小会随着改变,整个网格布局有动态变化效果。
  • Java中的卡片布局(CardLayout)

    千次阅读 2019-07-19 14:47:42
    卡片布局可以通过点击窗口中的按钮切换不同的面板。 package menu; import java.awt.CardLayout; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,014
精华内容 6,805
关键字:

卡片布局