十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
import java.awt.FlowLayout;
成都创新互联公司是一家专业提供靖西企业网站建设,专注与网站制作、做网站、H5响应式网站、小程序制作等业务。10年已为靖西众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class ShowButton implements ActionListener{
private JTextField textField = null;
private JButton button = null;
private JFrame frame = null;
public ShowButton(){
frame = new JFrame("显示按钮文字");
button = new JButton("3");
textField = new JTextField("",20);
frame.setLayout(new FlowLayout(FlowLayout.CENTER));
frame.add(textField);
button.addActionListener(this);
frame.add(button);
frame.setSize(400, 100);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
textField.setText("");
textField.setText(button.getActionCommand());
System.out.println(button.getActionCommand()+"===");
}
public static void main(String[] args) {
new ShowButton();
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class Buttoncall implements ActionListener {
private String[] a = {"1a", "2a", "3a", "4a", "5a" };
private JButton[] jbutton = new JButton[5];
private JLabel[] jlabel = new JLabel[jbutton.length];
//用于记录按钮的点击数
private Maplt;String, Integergt; countMap = new HashMaplt;String, Integergt;();
/**
* 创建一个新的实例 Buttoncall.
*/
public Buttoncall() {
// 创建窗口
JFrame j = new JFrame();
JPanel jpa = new JPanel();// 定义面板组建
/**
* 初始化按钮,及其点击次数(默认0)
*/
for (int i = 0; i lt; jbutton.length; i++) {
jbutton[i] = new JButton(a[i]);// 定义按钮组建
jpa.add(jbutton[i]);// 将按钮添加到面板之中
jlabel[i] = new JLabel("您已点击" + a[i] + "的次数是:0");
jpa.add(jlabel[i]);
jbutton[i].addActionListener(this);
}
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.add(jpa);
j.setTitle("测试使用");
j.setVisible(true);
j.setSize(400, 500);
}
/**
* 单击事件处理.
* lt;pgt;Title: actionPerformedlt;/pgt;
* lt;pgt;Description: lt;/pgt;
* @param actionevent
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
@Override
public void actionPerformed(ActionEvent actionevent) {
//获取单击事件组件 名称 如1a
String buttonName = actionevent.getActionCommand();
//在数组中的位置
int index = Arrays.asList(a).indexOf(buttonName);
if (index != -1) {
int count = 1;
//判断map中是否存在当前按钮
if (countMap.containsKey(buttonName)) {
count = countMap.get(buttonName);
count += 1;
}
//记录当前按钮点击次数
countMap.put(buttonName, count);
jlabel[index].setText("您已点击" + buttonName + "的次数是:" + count);
if (count % 10 == 0) {
JOptionPane.showMessageDialog(null, count + "是10的倍数,所以我来提示你!");
}
}
}
public static void main(String[] args) {
new Buttoncall();
}
}
你的这种写法不对,逻辑有问题!
匿名内部类调用的全局变量 i
所以每次点击的时候i的值都等于5,这时候就会数组越界!我给你写了个例子,你参考下!
有问题再追问,good luck!
1、this代表本类,就是this所在的类。
2、
addItemStateChanged是为了监听ItemEvent的,而ItemEvent是指示项被选定或取消选定的语义事件,此高级事件是在用户已选定项或取消选定项时由 ItemSelectable 对象(如 List)生成的。
addActionListener是为了监听ActionEvent的,而ActionEvent是指示发生了组件定义的动作的语义事件,当特定于组件的动作(比如被按下)发生时,由组件(比如 Button)生成此高级别事件。
给个例子你参考一下:给按钮bntOk添加监听事件
bntOk.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e1) {
label2= new JLabel();
frame.add(label2);
label2.setBounds(50, 50, 400, 200);
label2.setIcon(new ImageIcon("d:\\love.JPG")); //可以换成任意你想要的图片
}
});
点击按钮前,是这样的
点击显示按钮后,是这样的
完整的程序如下:
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
import java.awt.*;
public class wuziqi extends JFrame{
private JPanel frame;
private JButton bntOk;
private JLabel label2;
private ImageIcon asdIcon = new ImageIcon("d:\\love.JPG"); //换成你要显示的图片
public static void main(String[] args){
wuziqi mb=new wuziqi();
}
public wuziqi(){ //构造函数,搭建显示界面
frame= new JPanel();
getContentPane().add(frame, BorderLayout.CENTER);
frame.setLayout(null);
frame.setBounds(100, 100, 576, 440);
this.setSize(500, 500);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("点击按钮,显示图片");
this.setVisible(true);
bntOk = new JButton();
frame.add(bntOk);
bntOk.setText("显示");
bntOk.setLocation(10, 10);
bntOk.setBounds(150, 300, 66, 30);
bntOk.addMouseListener(new MouseAdapter() //给按钮加上监听事件
{
public void mouseClicked(MouseEvent e1) {
label2= new JLabel();
frame.add(label2);
label2.setBounds(50, 50, 400, 200);
label2.setIcon(asdIcon); //label内容为图片
}
});
}
}