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

Java卡片布局管理器解釋及實例

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

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

源碼:

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的布局管理將被設置成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; // 三個可直接翻轉到JPanel組件的按鈕
  private JPanel p_1 = null, p_2 = null, p_3 = null; // 要切換的三個JPanel
  
  public TestMain() {
    super("CardLayout Test");
    try {
      // 將LookAndFeel設置成Windows樣式
      UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
    } catch (Exception ex) {
      ex.printStackTrace();
    }
    /**創(chuàng)建一個具有指定的水平和垂直間隙的新卡片布局*/
    card = new CardLayout(5, 5);
    pane = new JPanel(card); // JPanel的布局管理將被設置成CardLayout
    p = new JPanel(); // 構造放按鈕的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");
    /**下面是翻轉到卡片布局的某個組件,可參考API中的文檔*/
    button_1.addActionListener(new ActionListener(){ // 上一步的按鈕動作
      public void actionPerformed(ActionEvent e) {
        card.previous(pane);
      }
    });
    button_2.addActionListener(new ActionListener(){ // 下一步的按鈕動作
      public void actionPerformed(ActionEvent e) {
        card.next(pane);
      }
    });
    b_1.addActionListener(new ActionListener() { // 直接翻轉到p_1
      public void actionPerformed(ActionEvent e) {
        card.show(pane, "p1");
      }
    });
    b_2.addActionListener(new ActionListener() { // 直接翻轉到p_2
      public void actionPerformed(ActionEvent e) {
        card.show(pane, "p2");
      }
    });
    b_3.addActionListener(new ActionListener() { // 直接翻轉到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();
  }
  
}

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

希望本文對大家Java程序設計有所幫助,同時,也請大家繼續(xù)關注腳本之家!

相關文章

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

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

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

    詳解Mybatis框架SQL防注入指南

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

    使用Mybatis-plus策略自動更新數(shù)據庫時間失敗問題解決

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

    淺析NIO系列之TCP

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

    spring緩存代碼詳解

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

    Java Unsafe 類的講解

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

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

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

    在Java Web項目中添加定時任務的方法

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

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

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

    idea項目代碼打包為jar包的超詳細步驟

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

最新評論