从大一开始就有人做计算器,那时候由于对gui不太熟悉,再加上当时认为算法自己理解地不是很透彻,所以没有自己做过。最近一直想努力做好gui,所以做了一个计算器的gui。
这篇文章来实例自己如何一步一步没话界面,有好建议的希望提出来。
首先,上version 1:
代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
* This class is to build the frame layout of the project. What's more, add
* actionListener to every button.
* @author Tian Meng
* @version 2011-4-5
*/
public class GuiFrame extends JFrame
{
JTextArea displayMessage =new JTextArea("\n0",2,26);
JButton[] numbers =new JButton[10];//数字键
JButton[] identifyOfNumbers =new JButton[2];//小数点和正负号
JButton[] operator =new JButton[8];// + ; - ; * ; / ; = ; sqrt ;1/x ; %
JButton[] clearer =new JButton[2]; // reset 和 backspace
/**
* constructor of this class
*/
public GuiFrame()
{
initButtons();
makeFrame();
setVisible(true);
pack();
}
/**
*Initailize the buttons in the frame
*/
private void initButtons()
{
init_numbers();
init_identifyOfNumbers();
init_operator();
init_clearer();
}
/**
* Initalize the number buttons anb add actionlistener
*/
private void init_numbers()
{
String[] nub ={"7","8","9","4","5","6","1","2","3","0"};
for(int i=0;i<10;i++)
{
numbers[i]=new JButton(nub[i]);
numbers[i].setForeground(Color.BLUE);
numbers[i].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
}
});
}
}
/**
* Initalize the "+/-" and " . " buttons, then add actionlistener
*/
private void init_identifyOfNumbers()
{
for(int i=0;i<2;i++)
{
if(i==0)
{
identifyOfNumbers[i]= new JButton("+/-");
}
else
{
identifyOfNumbers[i]= new JButton(".");
}
identifyOfNumbers[i].setForeground(Color.BLUE);
identifyOfNumbers[i].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
}
});
}
}
/**
* Initalize the operators buttons anb add actionlistener
*/
private void init_operator()
{
String[] op={"/","sqrt","*","%","-","1/x","+","="};
for(int i=0;i<8;i++)
{
operator[i] =new JButton(op[i]);
operator[i].setForeground(Color.RED);
operator[i].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
}
});
}
}
/**
* Initalize the clear buttons anb add actionlistener
*/
private void init_clearer()
{
for(int i=0;i<2;i++)
{
if(i==0)
{
clearer[i]= new JButton("BackSpace");
}
else
{
clearer[i]= new JButton("Clear");
}
clearer[i].setForeground(Color.RED);
clearer[i].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
}
});
}
}
/**
* this method is to construct the frame layout
*/
private void makeFrame()
{
Container con=getContentPane();
con.setLayout(new BorderLayout());
//displayMessage in the north part
JPanel northPanel =new JPanel();
con.add(northPanel,BorderLayout.NORTH);
displayMessage.setEnabled(false);
displayMessage.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
northPanel.add(displayMessage);
//clearer in the center part
JPanel centerPanel =new JPanel();
con.add(centerPanel,BorderLayout.CENTER);
centerPanel.add(clearer[0]);
centerPanel.add(clearer[1]);
//numbers and operators in the south part
JPanel southPanel =new JPanel(new BorderLayout());
JPanel numPanel =new JPanel(new GridLayout(4,3,3,3));
JPanel opePanel =new JPanel(new GridLayout(4,2,3,3));
con.add(southPanel,BorderLayout.SOUTH);
southPanel.add(numPanel,BorderLayout.CENTER);
southPanel.add(opePanel,BorderLayout.EAST);
for(int i=0;i<10;i++)
{
numPanel.add(numbers[i]);
}
numPanel.add(identifyOfNumbers[0]);
numPanel.add(identifyOfNumbers[1]);
numPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
for(int i=0;i<8;i++)
{
opePanel.add(operator[i]);
}
opePanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
}
}
效果图如下:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
version2 To be continued ...
分享到:
相关推荐
java calculator source code GUI implementation
Simple Calculator GUI Project using Turtle in Python
GUI-Calculator,利用MATLAB-gui界面guide功能实现的计算器
初学gui做了一个计算器的gui-calculator.fig 初学gui,做了一个简单的计算器gui,和大家一起分享学习matlab的快乐 matlab_calculator.JPG calculator.fig ...
python gui calculator
初学gui做了一个计算器的gui-calculator.m 初学gui,做了一个简单的计算器gui,和大家一起分享学习matlab的快乐 matlab_calculator.JPG calculator.fig ...
matlab GUI计算器包含:基础运算、特殊运算、结果数据处理。包含原始代码和设计说明书。可以辅助初学者进行学习,也可以给计算器开发者进行进一步开发提供思路。 (1)基础运算符包含“+”,“-”,“*”,“/”,...
Tkinter_Calculator:该目录用于维护Tkinter用Python Prgramming语言制作的Calculator GUI
Windows操作系统自带的计算器是个很方便的小工具,利用Java的GUI编程,实现一个Java GUI计算器应用程序界面,窗口标题为“计算器”,窗口布局如下图所示,在此计算器应用程序中实现“+、-、*、/”运算操作
利用matlab制作简单计算器,可满足简单计算需求,适用于新手学习matlab入门
Easy Work Time Calculator是一款使用很方便的工时计算工具,能按秒、分、时、天、周、月、年对您的任务所花费的时间进行计算或者计数,丰富的计算参数提供合并及平均值计算。输入参数时各日期时间元素的值会自动...
matlab GUI 计算器,和附件的计算器功能类似,由GUI实现
function calculator from calculator
calculator
calculator-gui-tkinter-:基于Python Tkinter的计算器GUI
Java语言编程的电子书及例题源代码
计算机 Calculator apk
Basic windows calculator replacement for those who likes operator precedence and keyboard input.
使用BOA Constructor開啟MainApp.py就可以管理計算機的視窗專案。 工具:BOA Constructor 利用Python的數學運算能力結合GUI介面的多功能計算機