| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 820 人关注过本帖
标题:Swing的按钮问题
只看楼主 加入收藏
vvvsnoopy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-5
收藏
 问题点数:0 回复次数:4 
Swing的按钮问题
程序代码:
/**

 * 窗体的扩展类,游戏的主窗体

 * */
public class MainFrame extends JFrame
{
    //默认宽度
    public static final int DEFAULT_WIDTH = 300;
    //默认高度
    public static final int DEFAULT_HEIGHT = 200;
    /**
     * 默认构造方法
     * */
    public MainFrame()
    {
        //调用初始化方法
        initDeploy();
        initParts();
    }
    
    /**
     * 初始化窗体的设置
     * */
    public void initDeploy()
    {
        //设置窗体大小
        setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
        //设置实体标题
        setTitle("扫雷游戏");
        //窗体大小不可被用户改变
        setResizable(false);
        setLocation(200,300);
    }
    /**
     * 初始化窗体内的控件
     * */
    public void initParts()
    {
        //创建面板类
        mapPanel panel = new mapPanel();
        //添加到窗体
        add(panel);
    }
}

/**

 * 地图面板类

 * */
class mapPanel extends JPanel
{
    /**
     * 绘画组件方法
     * @param g 绘制对象
     * */
    public void paintComponent(Graphics g)
    {
        //先让父类自己进行绘制
        super.paintComponent(g);
        //绘制一条文体信息
    //    g.drawString("扫雷", MESSAGE_X, MESSAGE_Y);
        //创建按钮
        //    for(int i = 0; i < 10;i++)
        {
            JButton btn = new JButton();
            btn.setLocation(50, 40);
            btn.setSize(20, 20);
            paintChildren(g);
            //添加到面板里
            add(btn);
            ColorAction action = new ColorAction();
            btn.addActionListener(action);    
        }
    }
    /**
     * 监听器
     * */
    class ColorAction implements ActionListener
    {
        private Color backgroundColor;
        
        /**
         * 事件执行
         * */
        public void actionPerformed(ActionEvent e) {
            if(backgroundColor == null)
            {
                backgroundColor = Color.RED;
            }else
            {
                backgroundColor = null;
            }
            setBackground(backgroundColor);
        }
    }
}


我明明只构造了一个按钮,为什么有两个???
搜索更多相关主题的帖子: 游戏 
2011-06-05 12:06
ghjsmzy
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:187
专家分:573
注 册:2009-6-17
收藏
得分:0 
我怎么只看到一个按钮呢???
2011-06-05 22:27
vvvsnoopy
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-5
收藏
得分:0 
回复 2楼 ghjsmzy
有两个。。。有时候有两个,有时候只有一个。。。另外一个在窗体外面,你把价格按钮的显示坐标调到窗体中间就会有问题。。。。
另一个按钮特别窄。。。不知道为什么,,,,
2011-06-06 16:22
洛云
Rank: 5Rank: 5
等 级:职业侠客
帖 子:204
专家分:356
注 册:2010-2-3
收藏
得分:0 
你是把添加按钮写在paintComponent中的,paintComponent在每次调用repaint或paint时被调用,你自己想吧

QQ群:C语言初级群:31066229
   JAVA2自学交流群(筹备中):31066388
UC群:C语言学习:10051714
2011-06-14 22:11
yuutian
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:137
专家分:686
注 册:2010-10-27
收藏
得分:0 
窗体放置的位置,错了。
       button 应该添加在panel面板,或jframe中,不要进行paint 或者repaint
2011-06-14 22:15
快速回复:Swing的按钮问题
数据加载中...
 
   



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

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