日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java卡片布局显示效果_三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)...

發布時間:2025/3/13 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java卡片布局显示效果_三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘自

http://blog.csdn.net/liujun13579/article/details/7773945

卡片布局能夠讓多個組件共享同一個顯示空間,共享空間的組件之間的關系就像一疊牌,組件疊在一起,初始時顯示該空間中第一個添加的組件,通過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位置中的面板的組件

程序顯示結果如下圖所示,單擊“上一張卡片”、“下一張卡片”等按鈕可以上面的面板中顯示不同的按鈕來。

packagecom.wst.bj;import java.awt.*;import javax.swing.*;import java.awt.event.*;//引入事件包//定義類時實現監聽接口

public class CardLayoutDemo extends JFrame implementsActionListener {

JButton nextbutton;

JButton preButton;

Panel cardPanel= newPanel();

Panel controlpaPanel= newPanel();//定義卡片布局對象

CardLayout card= newCardLayout();//定義構造函數

publicCardLayoutDemo() {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 voidactionPerformed(ActionEvent e) {//如果用戶單擊nextbutton,執行的語句

if (e.getSource() ==nextbutton) {//切換cardPanel面板中當前組件之后的一個組件//若當前組件為最后添加的組件,則顯示第一個組件,即卡片組件顯示是循環的。

card.next(cardPanel);

}if (e.getSource() ==preButton) {//切換cardPanel面板中當前組件之前的一個組件//若當前組件為第一個添加的組件,則顯示最后一個組件,即卡片組件顯示是循環的。

card.previous(cardPanel);

}

}

}

方法二

步驟:

(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位置中的面板的組件按鈕。

程序執行結果:

1 packagecom.wst.bj;2

3 import java.awt.*;4

5 import javax.swing.*;6

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

9 //定義類時 實現監聽接口

10

11 public class CardLayoutDemo2 extends JFrame implementsActionListener {12

13 JButton b0, b1, b2, b3;14

15 Panel cardPanel = newPanel();16

17 Panel controlpaPanel = newPanel();18

19 //定義卡片布局對象

20

21 CardLayout card = newCardLayout();22

23 //定義字符數組,為卡片命名

24

25 String cardName[]=

26 {"0","1","2","3"};27

28 //定義構造函數

29

30 publicCardLayoutDemo2() {31

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

34 setSize(400, 200);35

36 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);37

38 setLocationRelativeTo(null);39

40 setVisible(true);41

42 //設置cardPanel面板對象為卡片布局

43

44 cardPanel.setLayout(card);45

46 //循環,在cardPanel面板對象中添加4個按鈕47

48 //因為cardPanel面板對象為卡片布局,因此初始時顯示最先添加的組件

49

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

52 //面板中添加的每個按鈕對應設置一個卡片名

53

54 cardPanel.add(cardName[i], new JButton("按鈕" +i));55

56 }57

58 //實例化按鈕對象

59

60 b0 = new JButton("0");61

62 b1 = new JButton("1");63

64 b2 = new JButton("2");65

66 b3 = new JButton("3");67

68 //為按鈕對象注冊監聽器

69

70 b0.addActionListener(this);71

72 b1.addActionListener(this);73

74 b2.addActionListener(this);75

76 b3.addActionListener(this);77

78 controlpaPanel.add(b0);79

80 controlpaPanel.add(b1);81

82 controlpaPanel.add(b2);83

84 controlpaPanel.add(b3);85

86 //定義容器對象為當前窗體容器對象

87

88 Container container =getContentPane();89

90 //將 cardPanel面板放置在窗口邊界布局的中間,窗口默認為邊界布局

91

92 container.add(cardPanel, BorderLayout.CENTER);93

94 //將controlpaPanel面板放置在窗口邊界布局的南邊,

95

96 container.add(controlpaPanel, BorderLayout.SOUTH);97

98 }99

100 //實現按鈕的監聽觸發時的處理

101

102 public voidactionPerformed(ActionEvent e){103

104 //用戶單擊b0按鈕時執行的語句

105

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

108 //通過show()方法中的卡片名稱,顯示容器中的組件。

109

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

112 }113

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

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

118 }119

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

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

124 }125

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

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

130 }131

132 }133 }

總結

以上是生活随笔為你收集整理的java卡片布局显示效果_三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。