黑马程序员技术交流社区
标题: 小程序中有一点没看懂,求解 [打印本页]
作者: 党传才 时间: 2012-4-12 21:07
标题: 小程序中有一点没看懂,求解
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)没看懂)
作者: 罗旭维 时间: 2012-4-13 10:50
楼主代码有问题,不知道你运行过没有。我修改了下:
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是在事件
派发的时候调用的,也就是每产生一个点击按钮事件都会被调用,所以无论你点哪个按钮都会有“三行四列”“四行三列
”不同转化。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |