黑马程序员技术交流社区

标题: 按钮大小的设置问题 [打印本页]

作者: 侯丛政    时间: 2013-2-17 23:27
标题: 按钮大小的设置问题
本帖最后由 侯丛政 于 2013-2-19 13:17 编辑

    public static void main(String[] args){
                // 创建窗体
                Frame f = new Frame();
                // 设置属性
                f.setTitle("nakeno");
                f.setSize(400, 300);
                f.setLocation(200, 100);
                // 设置布局方式
                f.setLayout(new FlowLayout());
                // 创建按钮
                Button bu = new Button("AN");
                bu.setSize(20,20);      //  这步我修改了不同的参数值后执行的时候按钮大小没有变化,  为什么呢?
                // 把按钮添加到窗体上
                f.add(bu);
                // 注册组件
                f.addWindowListener(new WindowAdapter(){
                        public void windowClosing(WindowEvent e){
                                System.exit(0);
                        }
                });
                // 给按钮添加事件
                bu.addActionListener(new ActionListener(){
                        public void actionPerformed(ActionEvent e){
                                System.out.println("Welcome!");
                        }
                });
                // 设置可见
                f.setVisible(true);
        }


作者: 郭嘉    时间: 2013-2-17 23:53
因为你设置了flowlayout,这种布局默认了组件大小,如果想更改的话,建议setlayout(null)
作者: 陈科宇    时间: 2013-2-18 14:26
我测试了一下,顺便插了一下资料,在FlowLayout中,组件是流水线排列的,遇到边界就从下一排开始排列。你可以测试一下将Button的title改为空字串,你会发现它会变小,因为这时的组件大小与title字符串小官,刚好能包裹title。在绝对布局中,你就可以定位Button的大小和位置了。
// 设置布局方式为绝对布局
        f.setLayout(null);
        // 创建按钮
        Button bu = new Button("AN");
        bu.setBounds(50, 50, 20, 20);
作者: 侯丛政    时间: 2013-2-19 13:16
陈科宇 发表于 2013-2-18 14:26
我测试了一下,顺便插了一下资料,在FlowLayout中,组件是流水线排列的,遇到边界就从下一排开始排列。你可 ...

解决了   谢谢啊
作者: 侯丛政    时间: 2013-2-19 13:17
郭嘉 发表于 2013-2-17 23:53
因为你设置了flowlayout,这种布局默认了组件大小,如果想更改的话,建议setlayout(null) ...

一语中的   谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2