欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java卡片布局管理器解釋及實(shí)例

 更新時(shí)間:2017年09月01日 17:30:55   作者:鑒客  
這篇文章主要介紹了Java卡片布局管理器解釋及實(shí)例,需要的朋友可以參考下。

        由 CardLayout 類實(shí)現(xiàn)的布局管理器稱為卡片布局管理器,用來(lái)操縱其所管理容器中包含的容器或組件。每個(gè)直接添加到其所管理容器中的容器或組件為一個(gè)卡片,最先被添加的容器或組件被認(rèn)為是第一個(gè)卡片,最后被添加的則為最后一個(gè)卡片,初次運(yùn)行時(shí)將顯示第一個(gè)卡片。下面,我們就來(lái)通過(guò)一個(gè)實(shí)例看看它是怎么用的。

源碼:

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;
import javax.swing.UIManager;
 

public class TestMain extends JFrame {
  private JPanel pane = null; // 主要的JPanel,該JPanel的布局管理將被設(shè)置成CardLayout
  private JPanel p = null; // 放按鈕的JPanel
  private CardLayout card = null; // CardLayout布局管理器
  private JButton button_1 = null; // 上一步
  private JButton button_2 = null; // 下一步
  private JButton b_1 = null, b_2 = null, b_3 = null; // 三個(gè)可直接翻轉(zhuǎn)到JPanel組件的按鈕
  private JPanel p_1 = null, p_2 = null, p_3 = null; // 要切換的三個(gè)JPanel
  
  public TestMain() {
    super("CardLayout Test");
    try {
      // 將LookAndFeel設(shè)置成Windows樣式
      UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
    } catch (Exception ex) {
      ex.printStackTrace();
    }
    /**創(chuàng)建一個(gè)具有指定的水平和垂直間隙的新卡片布局*/
    card = new CardLayout(5, 5);
    pane = new JPanel(card); // JPanel的布局管理將被設(shè)置成CardLayout
    p = new JPanel(); // 構(gòu)造放按鈕的JPanel
    button_1 = new JButton("< 上一步");
    button_2 = 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));
    p.add(button_1);
    p.add(b_1);
    p.add(b_2);
    p.add(b_3);
    p.add(button_2);
    p_1 = new JPanel();
    p_2 = new JPanel();
    p_3 = new JPanel();
    p_1.setBackground(Color.RED);
    p_2.setBackground(Color.BLUE);
    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"));
    pane.add(p_1, "p1");
    pane.add(p_2, "p2");
    pane.add(p_3, "p3");
    /**下面是翻轉(zhuǎn)到卡片布局的某個(gè)組件,可參考API中的文檔*/
    button_1.addActionListener(new ActionListener(){ // 上一步的按鈕動(dòng)作
      public void actionPerformed(ActionEvent e) {
        card.previous(pane);
      }
    });
    button_2.addActionListener(new ActionListener(){ // 下一步的按鈕動(dòng)作
      public void actionPerformed(ActionEvent e) {
        card.next(pane);
      }
    });
    b_1.addActionListener(new ActionListener() { // 直接翻轉(zhuǎn)到p_1
      public void actionPerformed(ActionEvent e) {
        card.show(pane, "p1");
      }
    });
    b_2.addActionListener(new ActionListener() { // 直接翻轉(zhuǎn)到p_2
      public void actionPerformed(ActionEvent e) {
        card.show(pane, "p2");
      }
    });
    b_3.addActionListener(new ActionListener() { // 直接翻轉(zhuǎn)到p_3
      public void actionPerformed(ActionEvent e) {
        card.show(pane, "p3");
      }
    });
    this.getContentPane().add(pane);
    this.getContentPane().add(p, BorderLayout.SOUTH);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(300, 200);
    this.setVisible(true);
  }
  
  public static void main(String[] args) {
    new TestMain();
  }
  
}

注意:當(dāng)利用方法 next() 或 previous() 顯示卡片時(shí),將循環(huán)顯示所有卡片。例如,如果當(dāng)前顯示的是最后一個(gè)卡片,再調(diào)用方法 next() 將顯示第一個(gè)卡片;如果當(dāng)前顯示的是第一個(gè)卡片,再調(diào)用方法 previous() 將顯示最后一個(gè)卡片。

希望本文對(duì)大家Java程序設(shè)計(jì)有所幫助,同時(shí),也請(qǐng)大家繼續(xù)關(guān)注腳本之家!

相關(guān)文章

  • Java、C++中子類對(duì)父類函數(shù)覆蓋的可訪問(wèn)性縮小的區(qū)別介紹

    Java、C++中子類對(duì)父類函數(shù)覆蓋的可訪問(wèn)性縮小的區(qū)別介紹

    這篇文章主要給大家介紹了關(guān)于Java、C++中子類對(duì)父類函數(shù)覆蓋的可訪問(wèn)性縮小的區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • 詳解Mybatis框架SQL防注入指南

    詳解Mybatis框架SQL防注入指南

    這篇文章主要介紹了詳解Mybatis框架SQL防注入指南,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 使用Mybatis-plus策略自動(dòng)更新數(shù)據(jù)庫(kù)時(shí)間失敗問(wèn)題解決

    使用Mybatis-plus策略自動(dòng)更新數(shù)據(jù)庫(kù)時(shí)間失敗問(wèn)題解決

    這篇文章主要介紹了使用Mybatis-plus策略自動(dòng)更新數(shù)據(jù)庫(kù)時(shí)間失敗問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 淺析NIO系列之TCP

    淺析NIO系列之TCP

    NIO即同步非阻塞式IO,它和傳統(tǒng)的BIO比較最大的區(qū)別在于在執(zhí)行accept、connect、read、write操作時(shí)是非阻塞的。很有利于實(shí)現(xiàn)用少量線程來(lái)處理多個(gè)客戶端請(qǐng)求,可以隨時(shí)讓線程切換所處理的客戶端,從而可以實(shí)現(xiàn)高并發(fā)服務(wù)器的開(kāi)發(fā)
    2021-06-06
  • spring緩存代碼詳解

    spring緩存代碼詳解

    這篇文章主要介紹了spring緩存代碼詳解,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Java Unsafe 類的講解

    Java Unsafe 類的講解

    這篇文章主要給大家分享了 Java Unsafe 類的講解,文章圍繞Unsafe 類的相關(guān)資料展開(kāi)詳細(xì)內(nèi)容,具有一定的參考價(jià)值需要的朋友可以參考一下
    2021-11-11
  • SpringBoot結(jié)合dev-tool實(shí)現(xiàn)IDEA項(xiàng)目熱部署的流程步驟

    SpringBoot結(jié)合dev-tool實(shí)現(xiàn)IDEA項(xiàng)目熱部署的流程步驟

    這篇文章主要給大家介紹了SpringBoot結(jié)合dev-tool實(shí)現(xiàn)IDEA項(xiàng)目熱部署的流程步驟,文章通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)有一定的幫助,需要的朋友可以參考下
    2023-10-10
  • 在Java Web項(xiàng)目中添加定時(shí)任務(wù)的方法

    在Java Web項(xiàng)目中添加定時(shí)任務(wù)的方法

    在Java Web程序中加入定時(shí)任務(wù),這里介紹兩種方式使用監(jiān)聽(tīng)器注入,使用Spring注解@Scheduled注入,需要的朋友可以參考下
    2018-01-01
  • SpringBoot整合EasyExcel?3.x的完整示例

    SpringBoot整合EasyExcel?3.x的完整示例

    EasyExcel 是一個(gè)基于 Java 的、快速、簡(jiǎn)潔、解決大文件內(nèi)存溢出的 Excel 處理工具,它能讓你在不用考慮性能、內(nèi)存的等因素的情況下,快速完成 Excel 的讀、寫(xiě)等功能,這篇文章主要介紹了SpringBoot整合EasyExcel3.x的過(guò)程,需要的朋友可以參考下
    2023-07-07
  • idea項(xiàng)目代碼打包為jar包的超詳細(xì)步驟

    idea項(xiàng)目代碼打包為jar包的超詳細(xì)步驟

    因?yàn)闃I(yè)務(wù)開(kāi)發(fā)場(chǎng)景需要,將開(kāi)發(fā)項(xiàng)目中的Java類打成一個(gè)jar包引入到外部工具中,下面這篇文章主要給大家介紹了關(guān)于idea項(xiàng)目代碼打包為jar包的相關(guān)資料,需要的朋友可以參考下
    2023-01-01

最新評(píng)論