Java卡片布局管理器按动按钮切换显示内容

题目:为何单击按钮无法显示下张卡片?请尝试修改代码实现此功能。

import java.awt.CardLayout;
import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;

public class J_CardLayout
{
    public static void main(String args[ ])
    {
        JFrame app = new JFrame( "卡片布局管理器例程" );
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        app.setSize( 180, 100 );
        Container c = app.getContentPane( );
        CardLayout card = new CardLayout( );
        c.setLayout( card );
        String s;
        JButton b;
        for (int i=0; i<5; i++)
        {
            s = "按钮" + (i+1);
            b = new JButton( s );
            c.add( b);//c.add( b, s );
        } // for循环结束
        card.show(c, "按钮1");
        card.next( c );
        app.setVisible( true );
    } // 方法main结束
} // 类J_CardLayout结束

改进后:

import java.awt.CardLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import java.awt.*;


public class J_CardLayout
{
    public static void main(String args[ ])
    {
        JFrame app = new JFrame( "卡片布局管理器例程" );
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        app.setSize( 180, 100 );
        Container c = app.getContentPane( );
        CardLayout card = new CardLayout( );
        c.setLayout( card );
        String s;
        JButton b;
        for (int i=0; i<5; i++)
        {
            s = "按钮" + (i+1);
            b = new JButton( s );
            c.add( b);//c.add( b, s );
            card.show(c, "按钮1");
            b.addActionListener(new ActionListener()
            {
            	public void actionPerformed(ActionEvent e)
            	{
            		card.next( c );
            	}
            });
        } // for循环结束
        
        app.setVisible( true );
    } // 方法main结束
} // 类J_CardLayout结束

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值