_(:з」∠)_在书本例子的基础上做了点改动
package t4;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
//让包含事件源的容器对象来担任监听者
public class App14_4 extends JFrame implements ActionListener {
static App14_4 frm = new App14_4();
static JPanel cardPan = new JPanel(); //使用卡片布局的容器
static JPanel btPan = new JPanel(); //使用网格布局容器
static CardLayout crd = new CardLayout(5,10); //定义卡片布局对象crd
static JButton bt1 = new JButton("第一页");
static JButton bt2 = new JButton("上一页");
static JButton bt3 = new JButton("下一页");
static JButton bt4 = new JButton("最后页");
public static void main(String[] args) {
// TODO Auto-generated method stub
bt1.addActionListener(frm); //向按钮们注册监听者frm
bt2.addActionListener(frm);
bt3.addActionListener(frm);
bt4.addActionListener(frm);
//设置窗口
frm.setLayout(null);
frm.setTitle("卡片式布局策略CardLayout");
frm.setSize(350,300);
frm.setResizable(false);
//设置使用卡片布局的容器
cardPan.setLayout(crd);
cardPan.setBounds(10, 10, 320, 200);
for(int i=1;i<=4;i++) {
cardPan.add(new JTextArea("第"+i+"页"));
}
//设置使用网格布局的容器
btPan.setLayout(new GridLayout(1,4));
btPan.setBounds(10, 220, 320, 25);
btPan.add(bt1);
btPan.add(bt2);
btPan.add(bt3);
btPan.add(bt4);
frm.add(cardPan);
frm.add(btPan);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
JButton bt = (JButton)e.getSource();
if(bt == bt1)
crd.first(cardPan);
else if(bt == bt2)
crd.previous(cardPan);
else if(bt == bt3)
crd.next(cardPan);
else
crd.last(cardPan);
}
}
更多推荐
Java卡片布局(CardLayout)
发布评论