A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 党传才 中级黑马   /  2012-4-12 21:07  /  1397 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Aj34 extends Applet implements ActionListener
{
Button []buts;
String names[]={"A","B","C","D","E","F","G","H","I","j","k","l"};
boolean toggle=true;
public void init()
{
setLayout(new GridLayout(3,4,5,5));
buts=new Button[names.length];
for(int i=0;i<names.length;i++)
{
buts=new Button("按钮"+names);
buts.addActionListener(this);
add(buts);
}
}
public void actionPerformed(ActionEvent e)
{
if(toggle)
setLayout(new GridLayout(4,3,5,8));
else
setLayout(new GridLayout(3,4,8,5));
toggle=! toggle;
validate();
}
}

为什么按键后就会“三行四列”“四行三列”不同转化?(主要是public void actionPerformed(ActionEvent e)没看懂)

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

1 个回复

倒序浏览
楼主代码有问题,不知道你运行过没有。我修改了下:
package testjui;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class testjui extends Applet implements ActionListener
{
Button buts; //此处修改
String names[]={"A","B","C","D","E","F","G","H","I","j","k","l"};
boolean toggle=true;
public void init()
{
setLayout(new GridLayout(3,4,5,5));
//buts=new Button[names.length];//此处修改
for(int i=0;i<names.length;i++)
{
        buts=new Button("按钮"+names[i]);//此处修改
        buts.addActionListener(this);
        add(buts);
}
}
public void actionPerformed(ActionEvent e)
{
if(toggle)
setLayout(new GridLayout(4,3,5,8));
else
setLayout(new GridLayout(3,4,8,5));
toggle=! toggle;
validate();
}
}

每次执行actionPerformed方法,都会执行toggle=! toggle;这句,在这里实现转化逻辑,然后actionPerformed是在事件

派发的时候调用的,也就是每产生一个点击按钮事件都会被调用,所以无论你点哪个按钮都会有“三行四列”“四行三列

”不同转化。

评分

参与人数 1技术分 +1 收起 理由
岳民喜 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马