关于java窗口界面实现的简单流程(简易计算器)

第一次写关于技术的东西,还有就是在下还是菜鸟一个,无法写出高深的技术,只能从我个人角度觉得值得注意的角度谈谈拙见。

     我想谈谈这次做简易计算器窗口界面的体会,下面是我用java写的一个简易计算器的部分代码:

--------------------------------------------------------------------------

public class CaculationDemo extends JFrame implements KeyListener //继承键盘监听器 形成自监听,继承JFrame,主框架
{
  private Container content;                                     //声明容器类
  private JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0;     //声明需按钮
  private JButton bAdd,bSbt,bMul,bDvd,bSqrt,bPer,b1x,bEqual;
  private JButton bzf,bPoint,bC,bCE,bBs;
  private JPanel pNumber,pLetter;                               //声明面板(中间容器)
  private JTextArea ta;                                         //声明文本区域
  private double first = 0,second = 0;                          //声明声明运算数first和second
  private StringBuffer  str;                                   
  int j = 0, k = 4;                                             //j控制 按(+ - * /)后是否进行运算;k代表按下那个运算符(+ - * /)
 
  CaculationDemo()                                            
  {
    super("帅哥计算器");content = getContentPane();             //实例化容器content并设置管理器
    content.setLayout(new BorderLayout());
    pNumber = new JPanel();
    pLetter = new JPanel();                                    //实例化面板pNumber, pLetter
    ta = new JTextArea(1,20);                                   //实例化文本区域并设置
    ta.setEditable(false);   
    ta.setColumns(20);
    ta.setBounds(15,10,260,30);
    ta.setText("0");
    ta.addKeyListener(this);   
    Font f1 = new Font("宋体",Font.PLAIN,15);                  //声明并实例化Fon,用于设置按钮字体
    Font f2 = new Font("宋体",Font.PLAIN,10);
    str=new  StringBuffer();                                   //实例化一个字符串
    。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
//将数字键及".","+/-"等键添加到面板pNumber中并设置在主框架的位置和小


    pNumber.setLayout(new GridLayout(4,5,4,4));
    pNumber.add(b7);    pNumber.add(b8);    
    pNumber.add(b9);    pNumber.add(bDvd);
    pNumber.add(bSqrt); pNumber.add(b4);    
    pNumber.add(b5);    pNumber.add(b6);
    pNumber.add(bMul);  pNumber.add(bPer);    
    pNumber.add(b1);    pNumber.add(b2);
    pNumber.add(b3);    pNumber.add(bSbt);    
    pNumber.add(b1x);   pNumber.add(b0);
    pNumber.add(bzf);   pNumber.add(bPoint);
    pNumber.add(bAdd);  pNumber.add(bEqual);
    pNumber.setBounds(0,95,290,200);
   //将键C,CE,Backspace添加到面板pLetter并设置在主框架的位置和大小
    pLetter.setLayout(new GridLayout(1,3,5,5));
    pLetter.add(bBs);pLetter.add(bCE); pLetter.add(bC);
    pLetter.setBounds(0,47,290,43);
  //设置主框架以及添加他,pNumber,pLetter
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    content.setLayout(null);content.add(ta);content.add(pLetter);content.add(pNumber);
   setSize(290,325);  setVisible(true);
   }

 

  public static void main(String args[])
   {
    CaculationDemo cd = new CaculationDemo();
   }
--------------------------------------------------------------------------

 

  1要写好一个界面,必须要先对你所要实现的界面有一个总体布局,如界面的大小,以及可否改变大小,界面上有什么控件(比如按钮,标签,图标等),以及各控件的位置,大小(以及界面大小变化的时各控件怎样变化)等: 比如一个简易计算器:界面一般为长方形,界面上比较简单,就只有一些按钮(数字键,还有符号键),一个显示所按按钮的文本控件(如上图所示)。

     

        2按照界面上控件的功能或者某些属性以及在界面的位置,随界面变化而所做的反应决定控件需要怎么组合,是放在其他控件上,还是直接放在顶层容器上,或者放在中间容器如JPanel,以及所放组件上的布局管理器,如FlowLayout,或者null(利用setSize()等函数)

     如我上面编写的计算器,我把窗口上面的控件分成三个模块:1、显示的文本控件,位于最顶层,直接放在窗口最上面上; 2、清除键(C),删除键(CE,BackSpace)三个键分层一个模块,放在中间容器pLetter上,再放在窗口中间; 3、将数字键,运算键分成一个模块,放在中间容器pNumber上,放在窗口最下面。在2,3模块中,为了让个按键大小一致,我都采用了网格管理器GridLayout。然后通过函数setBound将三个模板放在上,中,下的位置(当然这其中就要计算好setBound()函数里所需的参数,这样才能设置出我们想要的界面。)

       3便是在实现界面得嘞里定义所需的按键以及容器(有时包括顶层容器,一般通过直接继承顶层容器就行了),如下面面代码

    private Container content;                                     //声明容器类
  private JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0;     //声明需按钮
  private JButton bAdd,bSbt,bMul,bDvd,bSqrt,bPer,b1x,bEqual;
  private JButton bzf,bPoint,bC,bCE,bBs;
  private JPanel pNumber,pLetter;                               //声明面板(中间容器)
  private JTextArea ta;

--------------------------------------------------------------------------

然后便是在实例化各控件,以及他们直接的设置,放置问题(第一步和第二步讨论的,在JAVA有两种常用编程方式 ,一是在main方法里实现各控件实例化及实现界面,叫主式方法;第二种是,由于在实践应用中定义的类很多,且访问频繁,所以先在这个我们实现界面的类中的设计一个无参的构造方法,在它里面初始化中实现界面,然后在main只编写一条实例化主类语句 ,这种方法叫构造方法式,这种方法较之主方法式方便得多,所以一般建议使用第二种方法。  上面的代码中我就用了第二种方法:             

    public static void main(String args[])
   {
    CaculationDemo cd = new CaculationDemo();
   }

-------------------------------------------------------------------------

   到此,窗口界面完成了,当然上面我主要是讲做一个界面,并没有介绍实现具体功能(比如说按按钮要发生什么操作),这些需要涉及到具体我们所要实现的功能,以及监听器的应用。这个嘛,也很晚了,找个机会再介绍我这个帅哥计算器的算法,以及所运用到的鼠标监听器和键盘监听器等。。。。。。。。。。。。。。

 

       菜鸟等级,请各位高手赐教,O(∩_∩)O哈哈~

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值