我的java学习-计算器界面箱式布局

今天尝试编制一个计算器。Java里面提供有Swing类用来编制图形界面,但是很多控件的编程比较复杂,各控件的用法也有自己的特点,按钮类文本框类密码框类标签类菜单类等等。个人感觉,计算器的编写还是比较简单,没有很多的控件,各种按键基本都是同一种类型Button类就可以,从空间的分布来看也是比较简单。
对于计算器的各个字符按键,可以考虑用箱式布局,因为各个按键大小一致,分布均匀,适合箱式布局的操作,主要也是箱式布局比较简单。
先创建一个水平箱,

	Box hBox2 = Box.createHorizontalBox();  //创建一个水平箱
       

将这一排的按键都添加到水平箱体里

	hBox2.add(button7);
        hBox2.add(button8);
        hBox2.add(button9);
        hBox2.add(buttonMulti);  //乘号

同样的操作,将所有计算器的按键都放在不同的水平箱里面,参考计算器的外观布局

	Box hBox1 = Box.createHorizontalBox();
        hBox1.add(buttonCE);  //全部清除键
        hBox1.add(buttonC);  //删除键
        hBox1.add(buttonDel);  //退位键
        hBox1.add(buttonDiv);  //除号键
        
        Box hBox2 = Box.createHorizontalBox();
        hBox2.add(button7);
        hBox2.add(button8);
        hBox2.add(button9);
        hBox2.add(buttonMulti);  //乘号键
        
        Box hBox3 = Box.createHorizontalBox();
        hBox3.add(button4);
        hBox3.add(button5);
        hBox3.add(button6);
        hBox3.add(buttonMinus);  //减号键
        
        Box hBox4 = Box.createHorizontalBox();
        hBox4.add(button1);
        hBox4.add(button2);
        hBox4.add(button3);
        hBox4.add(buttonAdd);  //加号键
        
        Box hBox5 = Box.createHorizontalBox();
        hBox5.add(buttonBlock);  //空白键
        hBox5.add(button0);
        hBox5.add(buttonDot);  //小数点
        hBox5.add(buttonAmount);  //等于键

在每行的键位都分布好后,将所有的水平箱加入到垂直箱里面,就可以完成计算器的键位配置

	Box vBox = Box.createVerticalBox();
        vBox.add(hBox1);
        vBox.add(hBox2);
        vBox.add(hBox3);
        vBox.add(hBox4);
        vBox.add(hBox5);

为了简化每个按键的创建代码,可以新建一个MyButton类,每个键位的监听响应和有关代码后面补充。

class MyButton extends JButton{    
    public JButton myIcon( String filename ){
        JButton button = new JButton();
        button.setIcon( new ImageIcon(filename) );  //用图片取代默认显示
        button.setBorderPainted(false);    //对边框的显示进行设置
        button.setContentAreaFilled(true);
        
        return button;
    }
}
	JButton button1 = new MyButton().myIcon("1.png");
        JButton button2 = new MyButton().myIcon("2.png");
        JButton button3 = new MyButton().myIcon("3.png");
        JButton buttonAdd = new MyButton().myIcon("add.png");
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值