| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5749 人关注过本帖
标题:我想在事件里用for循环按钮该怎么设置呢?
只看楼主 加入收藏
lgw646634231
Rank: 1
来 自:四川
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-12-9
结帖率:100%
收藏
 问题点数:0 回复次数:8 
我想在事件里用for循环按钮该怎么设置呢?
程序代码:
// 添加25个按钮到p1
        JButton[] pb = new JButton[25];
        int bn;
        for (bn=0;bn < 25; bn++){
            p1.add(pb[bn] = new JButton(new ImageIcon("./src/images/cm.jpg")));// 按钮图片        
        //监听者
        pb[bn].addActionListener(new ActionListener() {
            //监听事件
            public void actionPerformed(ActionEvent e) {
                pb[bn].setIcon(gw);
                pb[bn+1].setIcon(gw);
                pb[bn+5].setIcon(gw);
                
            }
        });}
搞了好久还是不行,我不想单独建许多按钮- -

我这个样子写,提示void 对于actionPerfomed 无效,
程序代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class luoguowen_game extends Frame implements ActionListener {
    /**
     * 
     */
    private static final long serialVersionUID = -1383975989841903439L;

    public luoguowen_game() {
        // 创建
        JFrame f = new JFrame("国哥的第一个游戏");// 标题
        JPanel p1 = new JPanel();// 创建1容器
        JPanel p2 = new JPanel();// 创建2容器
        JSplitPane sp = new JSplitPane();// 创建容器分割
        ImageIcon ii = new ImageIcon("./src/images/tubiao.png");// 添加JFrame图标
        ImageIcon gw = new ImageIcon("./src/images/gw.jpg");// 添加替换图片
        Image tubiao = ii.getImage();// 创建JFrame图标对象
        Image image2 = gw.getImage();// 创建替换图片对象
        // 主框体属性
        f.add(p1);// 主框添加容器
        f.setSize(610, 870);// 主框体尺寸
        f.setResizable(false);// 不可改变框体大小
        f.setLocationRelativeTo(null);// 主框出现在屏幕中央
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 点叉完全退出
        f.setIconImage(tubiao);// 设置JFrame图标
        JButton start = new JButton("开始");// 创建开始按钮
        p2.add(start);// 向p2添加开始按钮
        start.setPreferredSize(new java.awt.Dimension(100, 110));// 开始按钮设置为宽100,高110
        start.setFont(new Font("宋体", Font.LAYOUT_NO_LIMIT_CONTEXT, 33));// 开始字体设置为宋体、无布局限制、33号
        JButton restart = new JButton("重置");// 创建重置按钮
        p2.add(restart);// 向p2添加重置按钮
        restart.setPreferredSize(new java.awt.Dimension(100, 110));// 重置按钮设置为宽100,高110
        restart.setFont(new Font("宋体", Font.LAYOUT_NO_LIMIT_CONTEXT, 33));// 重置字体设置为宋体、无布局限制、33号

        // 布局
        p1.setLayout(new GridLayout(5, 5));// 为p1容器设置5*5网格布局
        p2.setLayout(new FlowLayout());// 为p2容器设置流布局
        sp.setOrientation(JSplitPane.VERTICAL_SPLIT);// 分割容器为上下两部分
        sp.setBottomComponent(p2);// 设置p2在下
        sp.setTopComponent(p1);// 设置p1在上
        sp.setDividerSize(3); // 分割线大小设置3
        sp.setDividerLocation(710);// 分割线位置710
        f.setContentPane(sp);// 替换主框容器为分割容器

        // 按钮
        // String
        // b[]={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18",
        // "19","20","21","22","23","24","25"};

        // 添加25个按钮到p1
        int bn;
        JButton[] pb = new JButton[25];
        for (bn = 0; bn < 25; bn++)
            p1.add(pb[bn] = new JButton(new ImageIcon("./src/images/cm.jpg")));// 按钮图片
            f.setVisible(true);// 主框体可见
            // 监听者
            pb[bn].addActionListener(this);
        // 监听事件
     public void actionPerformed(ActionEvent e) {
     pb[bn].setIcon(gw);
     pb[bn+1].setIcon(gw);
     pb[bn+5].setIcon(gw);
     }
    }

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


[此贴子已经被作者于2015-12-12 09:44编辑过]

搜索更多相关主题的帖子: 图片 
2015-12-12 00:18
lgw646634231
Rank: 1
来 自:四川
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-12-9
收藏
得分:0 
提示要 final修饰。。。可这根本就胡扯的嘛
2015-12-12 00:25
荷涵依旧
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-12-12
收藏
得分:0 
你想编程什么
2015-12-12 00:34
lgw646634231
Rank: 1
来 自:四川
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-12-9
收藏
得分:0 
回复 3楼 荷涵依旧
一个小游戏
2015-12-12 09:42
lgw646634231
Rank: 1
来 自:四川
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-12-9
收藏
得分:0 
= = 大神在哪儿
2015-12-12 16:30
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
那里看出是游戏了?

剑栈风樯各苦辛,别时冰雪到时春
2015-12-12 20:43
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
程序代码:
public class Luoguowen_game extends Frame implements ActionListener
{
    /**
     *

     */
    private static final long serialVersionUID = -1383975989841903439L;
   

    public Luoguowen_game()
    {
        // 创建
        JFrame f = new JFrame("国哥的第一个游戏");// 标题
        JPanel p1 = new JPanel();// 创建1容器
        JPanel p2 = new JPanel();// 创建2容器
        JSplitPane sp = new JSplitPane();// 创建容器分割
        ImageIcon ii = new ImageIcon("./src/images/tubiao.png");// 添加JFrame图标
        ImageIcon gw = new ImageIcon("./src/images/gw.jpg");// 添加替换图片
        Image tubiao = ii.getImage();// 创建JFrame图标对象
        Image image2 = gw.getImage();// 创建替换图片对象
        // 主框体属性
        f.add(p1);// 主框添加容器
        f.setSize(610, 870);// 主框体尺寸
        f.setResizable(false);// 不可改变框体大小
        f.setLocationRelativeTo(null);// 主框出现在屏幕中央
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 点叉完全退出
        f.setIconImage(tubiao);// 设置JFrame图标
        JButton start = new JButton("开始");// 创建开始按钮
        p2.add(start);// 向p2添加开始按钮
        start.setPreferredSize(new java.awt.Dimension(100, 110));// 开始按钮设置为宽100,高110
        start.setFont(new Font("宋体", Font.LAYOUT_NO_LIMIT_CONTEXT, 33));// 开始字体设置为宋体、无布局限制、33号
        JButton restart = new JButton("重置");// 创建重置按钮
        p2.add(restart);// 向p2添加重置按钮
        restart.setPreferredSize(new java.awt.Dimension(100, 110));// 重置按钮设置为宽100,高110
        restart.setFont(new Font("宋体", Font.LAYOUT_NO_LIMIT_CONTEXT, 33));// 重置字体设置为宋体、无布局限制、33号
       

        // 布局
        p1.setLayout(new GridLayout(5, 5));// 为p1容器设置5*5网格布局
        p2.setLayout(new FlowLayout());// 为p2容器设置流布局
        sp.setOrientation(JSplitPane.VERTICAL_SPLIT);// 分割容器为上下两部分
        sp.setBottomComponent(p2);// 设置p2在下
        sp.setTopComponent(p1);// 设置p1在上
        sp.setDividerSize(3); // 分割线大小设置3
        sp.setDividerLocation(710);// 分割线位置710
        f.setContentPane(sp);// 替换主框容器为分割容器
       

        // 按钮
        // String
        // b[]={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18",
        // "19","20","21","22","23","24","25"};
       

        // 添加25个按钮到p1
        JButton[] pb = new JButton[25];
        for (int i = 0; i < 25; i++)
        {
            p1.add(pb[i] = new JButton(new ImageIcon("./src/images/cm.jpg")));// 按钮图片
            pb[i].addActionListener(this);
        }
        // 监听者
        f.setVisible(true);// 主框体可见
       

    }
   

    // 监听事件
    public void actionPerformed(ActionEvent e)
    {
        // pb[bn].setIcon(gw);
        // pb[bn+1].setIcon(gw);
        // pb[bn+5].setIcon(gw);
    }
   

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

剑栈风樯各苦辛,别时冰雪到时春
2015-12-12 20:48
lgw646634231
Rank: 1
来 自:四川
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-12-9
收藏
得分:0 
回复 6楼 林月儿
还没写完呢,监听遇到问题了嘛
2015-12-12 22:45
lgw646634231
Rank: 1
来 自:四川
等 级:新手上路
帖 子:11
专家分:0
注 册:2015-12-9
收藏
得分:0 
回复 7楼 林月儿
这个样子的话,下边的按钮事件就不能用了的嘛,我是设置点击一个按钮时:按钮对象、对象+1、对象+5的按钮切换图片
2015-12-12 23:11
快速回复:我想在事件里用for循环按钮该怎么设置呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024141 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved