日期:2014-05-19  浏览次数:20745 次

java中如何实现一个按钮拥有两种功能。
即如:按钮JButton jb = new JButton();
在监听中,jb可以实现两个功能:开/关。
点一次按钮上的文字为:开,第二次点击为:关。再点击又变回:开。

------解决方案--------------------
可以设置一个全局变量、点次开关就累计加一、

取模运算 等于1 和等于0 在累加多少次之后 从新给该变量赋值
------解决方案--------------------
探讨

可以设置一个全局变量、点次开关就累计加一、

取模运算 等于1 和等于0 在累加多少次之后 从新给该变量赋值

------解决方案--------------------
Java code

package de;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class som extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
static int i=0;
JButton jb;
boolean mark;
public som()
{
    
    
Panel p = new Panel();
jb = new JButton("关");
jb.addActionListener(this);
p.add(jb);
add(p);
this.setVisible(true);
this.pack();

}

public static void main(String args[])
{
new som();
}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==jb)
{
if(i%2==0)
{

jb.setActionCommand("开");
[color=#FF0000]jb.setText(" 关");//这里忘了改变文本值,所以你看不出效果来[/color]
mark=true; //用于中止线程的run()方法
i=i+1;
}
else
{
mark = false;

jb.setActionCommand("关");
[color=#FF0000]jb.setText(" 关");//这里忘了改变文本值,所以你看不出效果来[/color]
i=i+1;

}

}
}



}