⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap11-6.txt

📁 清华大学出版社经典教材系列
💻 TXT
字号:
// 程序11-6
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class testCardLayout implements ActionListener{
    JFrame  frame;
    Container  contentPane;        
    JPanel  deck;
    CardLayout  cardManager;       // CardLayout对象
    JButton  buttons[ ];
    String  names[ ]={"First","Next","Previous","Last"};
    
    public testCardLayout( ){    		// testCardLayout的构造函数
        frame=new subJFrame("testCardLayout");
        contentPane=frame.getContentPane( );        
        deck= new JPanel( );
        cardManager=new CardLayout( );     // 定义一个布局管理器
        deck.setLayout(cardManager);       // 设置内容格的布局
        
        JPanel card1=new JPanel( );      	// 定义第1张卡片
        JLabel lab1=new JLabel("卡片一");  // 上面仅有一个标签
        card1.add(lab1);
        deck.add(card1,lab1.getText( ));   	// 将第1张卡片加入deck面板
        
        JPanel card2=new JPanel( );      	// 定义第2张卡片
        JTextField field=new JTextField("卡片二");  
        card2.add(field);
        deck.add(card2,field.getText( ));   	// 将第2张卡片加入deck面板            

        JPanel card3=new JPanel( );      	// 定义第3张卡片
        JLabel lab3=new JLabel("卡片三");
        card3.setLayout(new BorderLayout( ));
        card3.add(new JButton("北"),BorderLayout.NORTH);
        card3.add(new JButton("南"),BorderLayout.SOUTH);
        card3.add(new JButton("西"),BorderLayout.WEST);
        card3.add(new JButton("东"),BorderLayout.EAST);
        card3.add(lab3,BorderLayout.CENTER);
        deck.add(card3,lab3.getText( ));   	// 将第3张卡片加入deck面板
        
            // 创建控制面板
        JPanel controls=new JPanel( );      
        controls.setLayout(new GridLayout(2,2));
        buttons=new JButton[names.length];    
        for(int i=0;i<names.length;i++){
            buttons[i]=new JButton(names[i]);
            buttons[i].addActionListener(this);
            controls.add(buttons[i]);   	// 将按钮加入controls面板
        } 

            // 将controls 和 deck加入到内容格
        contentPane.add(controls , BorderLayout.WEST);  
        contentPane.add(deck , BorderLayout.EAST);         
        frame.setSize(350,200);
        frame.show( );
    }       
    
    public void actionPerformed(ActionEvent evt){
        if(evt.getSource( )==buttons[0])		// 显示第一张卡片
            cardManager.first(deck);
        else if(evt.getSource( )==buttons[1])		// 显示下一张卡片
            cardManager.next(deck);
        else if(evt.getSource( )==buttons[2])		// 显示前一张卡片
            cardManager.previous(deck);
        else if(evt.getSource( )==buttons[3])		// 显示最后一张卡片
            cardManager.last(deck);
    }
    
    public static void main(String args[ ]){
        testCardLayout  obj=new testCardLayout( );        
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -