全国
Java--教育路上

栏目导航

全国站 > Java > 图形界面
需求

java布局管理CardLayout

摘要:java布局管理CardLayout,我们经常会通过选项卡按钮来切换程序中的界面,这些界面就相当于一张张卡片,而管理这些卡片的布局管理器就是卡片布局管理器(CardLayout)。以下是我们为大家整理的,相信大家阅读完后肯定有了自己的选择吧。

标签:
发布时间:
2024-03-29 13:14
信息来源:
网络推荐
浏览次数:
850
java布局管理CardLayout

在操作程序时,我们经常会通过选项卡按钮来切换程序中的界面,这些界面就相当于一张

张卡片,而管理这些卡片的布局管理器就是卡片布局管理器(CardLayout)。卡片布局管理器将界面

看做一系列卡片,在任何时候只有其中一张卡片是可见的,这张卡片占据容器的整个区域。在

CardLayout 布局管理中经常会用到下面几个方法,如表 11-4 所示。

from shengerguan

-12 Example12.java;’

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

//定义 Cardlayout 继承 Frame 类,实现 ActionListener 接口

class Cardlayout extends Frame implements ActionListener {

Button nextbutton,preButton;

Panel cardPanel = new Panel(); // 定义 Panel 面板放置卡片

Panel controlpaPanel = new Panel(); // 定义 Panel 面板放置按钮

CardLayout cardLayout = new CardLayout();// 定义卡片布局对象

public Cardlayout() { // 定义构造方法,设置卡片布局管理器的

属性

setSize(300, 200);

setVisible(true);

// 为窗口添加关闭事件监听器

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

Cardlayout.this.dispose();

}

});

cardPanel.setLayout(cardLayout); // 设置 cardPanel 面板对象为卡片布局

// 在 cardPanel 面板对象中添加 3 个文本标签

cardPanel.add(new Label("第一个界面", Label.CENTER));

cardPanel.add(new Label("第二个界面", Label.CENTER));

cardPanel.add(new Label("第三个界面", Label.CENTER));

// 创建两个按钮对象

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

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

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

nextbutton.addActionListener(this);

preButton.addActionListener(this);

// 将按钮添加到 controlpaPanel 中

controlpaPanel.add(preButton);

controlpaPanel.add(nextbutton);

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

this.add(cardPanel, BorderLayout.CENTER);

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

this.add(controlpaPanel, BorderLayout.SOUTH);

}

// 下面的代码实现了按钮的监听触发,并对触发事件做出相应的处理

public void actionPerformed(ActionEvent e) {

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

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

// 切换 cardPanel 面板中当前组件之后的一个组件,若当前组件为最后一个组件,则

显示第一个组件。

cardLayout.next(cardPanel);

}

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

// 切换 cardPanel 面板中当前组件之前的一个组件,若当前组件为第一个组件,则显

示最后一个组件。

cardLayout.previous(cardPanel);

}

}

}

public class Example12 {

public static void main(String[] args) {

Cardlayout cardlayout = new Cardlayout();

}

}

编译运行程序,生成的窗口如图 11-21 所示

from shengerguan

例 11-12 中,在顶层 Frame 容器采用 BorderLayout 布局 CENTER 区域和 SOUTH 区城分别

放置 cardPanel 和 controlpaPanel 面板其中 cardPanel 面板采用 CardLayout 中放置了两个名布

局管理器,其中放置了三个 Label 标签代表三张卡片, controlpaPanel 为“上一张卡片”和“下一张卡

片"的按钮,通过点击这两个按钮,会触发按钮的事件监听器,调用 CardLayout 的 previous()和

next( )方法对 cardPanel 面板中的卡片进行切换。CardLayout 的优点是可以使两个或更多的界面

共享一个显示空间,某一时刻只有一个界面可见。


上一篇:
java布局管理GridBagLayout
下一篇:
java不使用布局管理器
相关推荐
最近更新
学校免费发布信息关闭
如有图片请发邮件到:edu63@foxmail.com,审核后显示

 换一张

确认提交
完善补充本文信息关闭
非常感谢您帮助完善补充本文信息


 换一张

确认提交