您的位置:首页 > 编程语言 > Java开发

利用Java制作计算器的界面

2017-11-30 23:59 489 查看

Java制作基于GUI计算器的界面

    
             首先,我们需要知道GUI是什么东西,所谓GUI,全称为(Graphical User Interface),又称图形用户接口,或者是图形用户界面,其实就是指采用图形方式显示的计算机操作用户界面。
             既然我们知道了GUI,然后我们就自然联想到了各种按钮,各种窗口图形,而这些东西,全部都包含在了java自带的Swing中,Swing,嗯,百度一下:Swing是一个用于开发Java应用程序用户界面的开发工具包。
至于我们如何去调用,在代码的开头附上一句:import javax.swing.*;就可以了。
               在具体讲解之前,还需要了解一些Java中的一些词汇:

JFrame :它是屏幕上window的对象,能够最大化、最小化、关闭

JPanel :是一种轻量级容器,可以加入到JFrame窗体中

JTextArea :是一个文本框,可以显示文本

JButton : 是Java中的按钮,可以实现一些功能

                  讲了这么多废话,终于要开始了。

JFrame frame1 = new JFrame("calculate") ;

JPanel pan1 = new JPanel();//数字按钮

JPanel pan2 = new JPanel();//符号按钮

JTextArea nr1 = new JTextArea(1,10);//建立文本框


               如上:我们就已经建立了一个名为calculate的窗口啦,里面包含着两个容器,一个是用来放置数字按钮的,还有一个是用来放置符号按钮的。还有一个用来显示你输入的东西的文本显示区域。
东西既然设置好了,总得设置个大小吧:

frame1.setSize(225,245);
pan1.setLayout(null);
pan1.setBounds(0,20,180,240);//建立容器1的大小
pan2.setLayout(null);
pan2.setBounds(180,30,60,240);//建立容器2的大小
               上面的setLayout() 实际是指pan1的布局为啥样,我们设置为空,是为了下面的绝对坐标的使用。
框架既然已经大致出来了,没有按钮怎么行呢?

for(int i=0;i<=2;i++) {
for(int j=1;j<=3;j++) {
JButton but = new JButton(""+(3*i+j));
but.setBounds(60*(j-1),60*i,60,60);
pan1.add(but);
}
}
JButton but10 = new JButton("#");
     but10.setBounds(0,180,60,60);
     pan1.add(but10);
     JButton but11 = new JButton("0");
     but11.setBounds(60,180,60,60);
     pan1.add(but11);
     JButton but12 = new JButton("~");
     but12.setBounds(120,180,60,60);
     pan1.add(but12);
                  这样,我们就建立了1-9,九个按钮以及建立了0,#,~,这就完成了数字区域的按钮。

                  哦,忘了说了,  .setBounds()函数其实是 .setBounds(x,y,length,height)   x就是在容器中的绝对坐标下,y也同理,length就是在x方向上按钮的长度,height就是在y方向上的长度。
                  紧接着,我们把容器二中的按钮也添加进去:

JButton  jia = new JButton("+");
jia.setBounds(180,0,60,40);
JButton  jian = new JButton("-");
jian.setBounds(180,40,60,40);
JButton  chen = new JButton("*");
chen.setBounds(180,80,60,40);
JButton  chu = new JButton("/");
chu.setBounds(180,120,60,40);
JButton  qingkong = new JButton("清空");
qingkong.setBounds(180,160,60,40);
JButton  dengyu = new JButton("=");
dengyu.setBounds(180,200,60,40);
pan2.add(jia);//在容器2中添加功能按钮
pan2.add(jian);
pan2.add(chen);
pan2.add(chu);
pan2.add(qingkong);
pan2.add(dengyu);
               最后,我们还需要将整个window进行布局,你想嘛,上面只是确定了有哪些容器,却没有说到底怎么分布。
BorderLayout Bor = new BorderLayout(2,2);//进行布局
frame1.setLayout(Bor);
frame1.add(nr1,Bor.NORTH);
frame1.add(pan1,Bor.CENTER);
frame1.add(pan2,Bor.CENTER);
               先给大家说明一下,java一共有好几种布局方式:
布局方式解释:
BorderLayout分为五块:东西南北中
FlowLayout类似段落
GirdLayout被分为等大矩形
BoxLayout额,怎么解释呢?类似于盒子进行排布
CardLayout类似于图层
最后的话,别忘了加上:

frame1.setVisible(true) ;
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
给大家发个总的代码吧,最后了,第一次写博客,写的不好还请见谅。

package diqizhang;
import java.awt.BorderLayout;

import javax.swing.*;
public class calculate1{
public static void main(String[] args){
{
JFrame frame1 = new JFrame("calculate") ; JPanel pan1 = new JPanel();//数字按钮 JPanel pan2 = new JPanel();//符号按钮 JTextArea nr1 = new JTextArea(1,10);//建立文本框

frame1.setSize(225,245);
pan1.setLayout(null);
pan1.setBounds(0,20,180,240);//建立容器1的大小
pan2.setLayout(null);
pan2.setBounds(180,30,60,240);//建立容器2的大小

//建立12个按钮
for(int i=0;i<=2;i++) {
for(int j=1;j<=3;j++) {
JButton but = new JButton(""+(3*i+j));
but.setBounds(60*(j-1),60*i,60,60);
pan1.add(but);}}

JButton but10 = new JButton("#");
but10.setBounds(0,180,60,60);
pan1.add(but10);
JButton but11 = new JButton("0");
but11.setBounds(60,180,60,60);
pan1.add(but11);
JButton but12 = new JButton("~");
but12.setBounds(120,180,60,60);
pan1.add(but12);

JButton jia = new JButton("+"); jia.setBounds(180,0,60,40); JButton jian = new JButton("-"); jian.setBounds(180,40,60,40); JButton chen = new JButton("*"); chen.setBounds(180,80,60,40); JButton chu = new JButton("/"); chu.setBounds(180,120,60,40); JButton qingkong = new JButton("清空"); qingkong.setBounds(180,160,60,40); JButton dengyu = new JButton("="); dengyu.setBounds(180,200,60,40); pan2.add(jia);//在容器2中添加功能按钮 pan2.add(jian); pan2.add(chen); pan2.add(chu); pan2.add(qingkong); pan2.add(dengyu);

BorderLayout Bor = new BorderLayout(2,2);//进行布局
frame1.setLayout(Bor);
frame1.add(nr1,Bor.NORTH);
frame1.add(pan1,Bor.CENTER);
frame1.add(pan2,Bor.CENTER);
frame1.setVisible(true) ;
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
}
效果图:::::
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 界面 gui 计算器