• 卡片布局管理器(CardLayout)


    1.作用:

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

    2.CardLayout的常用构造方法:

    void   first(Container    parent)               翻转到指定容器的第一张卡片

    void   next(Container   parent)               翻转到指定容器的下一张图片

    void   previous(Container   parent)         翻转到指定容器的上一张图片

    void   last(Container   parent)                翻转到指定容器的最后一张图片

    void   show(Container   parent,String name)                显示指定卡片

    3.卡片布局管理器的用法
    import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracker; import java.awt.
    event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import com.lovo.game.MediaTrackerHelp; public class CardLayoutTest extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; private MediaTracker mediaTracker; private Image[] images = new Image[10]; private CardLayout cardLayout; private JPanel showImgPnl; private JTextField page; public CardLayoutTest() { setTitle("卡片布局管理器"); setSize(500, 500); setLocationRelativeTo(null); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE); // 创建MediaTracker对象 mediaTracker = new MediaTracker(this); // 添加10张图像到媒体追踪器的图像列表中 for (int i = 0; i < images.length; i++) { // 将图像添加到追踪器列表中 images[i] = MediaTrackerHelp.addImage(mediaTracker, new ImageIcon( "images/" + i + ".JPG").getImage()); } /* 添加按钮 */ JButton previous = new JButton("previous"); JButton next = new JButton("next"); page = new JTextField("5"); JButton go = new JButton("go"); JPanel btnPnl = new JPanel(); btnPnl.add(previous); btnPnl.add(next); btnPnl.add(page); btnPnl.add(go); next.addActionListener(this); previous.addActionListener(this); go.addActionListener(this); this.add(btnPnl, BorderLayout.SOUTH); /* 创建卡片布局管理器 */ cardLayout = new CardLayout(); showImgPnl = new JPanel(cardLayout); /* 将10张图像添加到使用卡片布局管理器的容器中 */ for (int i = 0; i < images.length; i++) { final Image image = images[i]; JPanel imgPnl = new JPanel() { private static final long serialVersionUID = 1L; @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 100, 100, null); } }; showImgPnl.add("img" + i, imgPnl); } this.add(showImgPnl, BorderLayout.CENTER); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if ("previous".equals(cmd)) { cardLayout.previous(showImgPnl); } else if ("next".equals(cmd)) { cardLayout.next(showImgPnl); } else if ("go".equals(cmd)){ String page = this.page.getText(); cardLayout.show(showImgPnl, "img" + page); } } public static void main(String[] args) { new CardLayoutTest(); } }
  • 相关阅读:
    Kettle Spoon 数据源连接中报ORA12505, TNS:listener does not currently know of SID given in connect descriptor的错误
    oracle创建用户和删除用户sql
    Kettle Spoon表输入使用变量
    Kettle Spoon 资源库连接后新建转换打不开,报Invalid byte 1 of 1byte UTF8 sequence异常
    oracle 误删除表/表中数据,恢复方法
    让ie兼容css3新属性backroundsize
    网页设计中为啥少用奇数字体?
    浏览器差异总结,可以用此判断浏览器版本(转)
    ie浏览器f12下调“浏览器模式”和“文档模式”的区别
    jquery的淡入淡出和隐藏,展示函数在ie中应用的bug
  • 原文地址:https://www.cnblogs.com/g398429959/p/4524707.html
Copyright © 2020-2023  润新知