import javax.swing.*
public class MyCalculator extends JFrame{
public MyCalculator() {
String ss1 = "0123456789ABCDEF"
String[] ss2 = {"+","-","*","/","√ ̄","aⁿ","CE","="}//有些字符不在GBK中,所以文本使用了UTF-8编码。如果要用GBK编码,就把字符修改成汉字,比如平方根,乘方
JPanel jp0//存放显示的文本框
JPanel jp1//存放0~9 A~F
JPanel jp2//存放运算符
//jp0
jp0 = new JPanel()
JTextField jtf = new JTextField(16)
jtf.setText("0")
jtf.setHorizontalAlignment(JTextField.RIGHT)//按照惯例,计算器的数字显示在右侧
jtf.setEditable(false)//按照惯例,计算器显示结果的文本框不许编辑
jp0.add(jtf)
JButton jb//按钮
//jp1
jp1 = new JPanel(new GridLayout(4, 4,3,3))
for (int i = 0 i < ss1.length() i++) {
jb = new JButton(ss1.charAt(i)+"")
jp1.add(jb)
}
//jp2
jp2 = new JPanel(new GridLayout(3, 3,3,3))
for (int i = 0 i < ss2.length i++) {
jb = new JButton(ss2[i])
jb.setForeground(Color.BLUE)//为了突出这些运算符,把颜色调整成蓝色
jp2.add(jb)
}
add(jp0)
add(jp1)
add(jp2)
setLayout(new FlowLayout())//把JFrame设置成流式布局
setTitle("计算器")//设置窗口标题
setSize(220, 285)//设置窗口大小
setResizable(false)//设置窗口不许缩放,因为流式布局,缩放会导致布局变化
setLocationRelativeTo(null)//设置窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE)//设置点击关闭退出jvm虚拟机
setVisible(true)//设置窗口可见
}
public static void main(String[] args) {
new MyCalculator()//创建窗口
}
}
package jisuanqi_new
import java.awt.*
import java.awt.event.*
public class JiSuanQi_new implements ActionListener
{
Panel p1//声明面板p1
TextField t1//声明文本行t1
String[] label = {"7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"}//声明标签数组label1存放按钮上的标签
Button[] b//声明按钮数组存放16个按钮
private int i//声明i以备后用
private String op1 = "0"//运算数备用
private String operator = "+"//运算符备用
private boolean append = false//备用
public JiSuanQi_new()//构造方法
{
t1=new TextField()//初始化文本行t1
b = new Button[label.length]//初始化按钮数组b
p1=new Panel()//初始化面板p1
p1.setLayout(new GridLayout(4,4,4,4))//使面板选择网格布局管理器以备储存16个按钮(4行4列)
for(int i=0i<b.lengthi++)//利用for循环把标签放在按钮上,使每个按钮添加事件监听器,在面板p1上添加上16个按钮
{
b[i] = new Button(label[i])//把标签依次放在16个按钮上
b[i].addActionListener(this)//使每个按钮添加动作事件监听器
p1.add(b[i]) //分别将按钮添加到面板p1上
}
Frame f=new Frame("计算器1.0")//初始化窗口f,起名字计算器1.0
f.setLayout(new BorderLayout())//为窗口选择边界布局管理器
f.add(BorderLayout.NORTH,t1)//把文本行他添加到窗口的北部
f.add(BorderLayout.CENTER,p1)//把面吧p1添加到窗口的中间
f.addWindowListener(new WindowAdapter(){//给窗口f添加窗口事件监听器
public void windowClosing(WindowEvent eve){//运行窗口关闭方法
System.exit(0)//退出程序
}
})
f.setSize(250, 250)//设置窗口大小
f.setLocation(200,200)
f.setVisible(true)//显示窗口
}
public static void main(String args[])
{
new JiSuanQi_new() //调用构造方法
}
public void actionPerformed(ActionEvent ae)
{//按钮被操作发生
String comm = ae.getActionCommand()//返回与此动作相关的命令字符串,即:使用者第一次点击的按钮是什么。
if("0123456789".indexOf(comm)!=-1)//如果相关命令字符串为0~9之间的数字则执行
{
if(append){
String temp = t1.getText()//新数字
t1.setText(temp+comm)
}else{ //因为此时append为false执行这个
t1.setText(comm) //将文本行t1设置为相关命令字符串(你按中的按钮代码)
append = true//此时append=true若继续按按钮若继续按数字的话1.第一次的按话不会改变2.非第一次按得话会覆盖之前按得数字(即缺点:只能进行单个数字的计算)
}
}
else if(("+-*/".indexOf(comm)!=-1))//如果相关命令字符串为+-*/之间的数字则执行
{
//保存
//t1.setText(comm)
op1 = t1.getText()//把第一个数赋值给op1
operator = comm//把命令字符串赋值给operator
append = false//此时append为false即若继续按按钮若按数字的话将重复上面的动作,按符号的话将覆盖之前的符号
}
else if("=".equals(comm))//如果按的是=号,则按条件进行下面的运算
{
String op2 = t1.getText()//op2第二个数
double d1 = Double.parseDouble(op1)
double d2 = Double.parseDouble(op2)
if(operator.equals("+")){
d1 = d1 + d2
}else if(operator.equals("-")){
d1 = d1 - d2
}else if(operator.equals("*")){
d1 = d1 * d2
}else {
d1 = d1 / d2
}
t1.setText(d1+"")//显示计算结果
append = false
}
else if(".".equals(comm))//若是.号继续按
{
String temp = t1.getText()
if(temp.indexOf(".")==-1){
t1.setText(temp+".")
append = true
}
}
}
}
1、新建一个易语言的Windows窗口程序。2、举一个简单的例子,做一个加法计算器。添加三个编辑框、两个文本和一个按钮,界面如下:
3、此时会用到两个局部变量,定义为变量1、变量2,按CTRL+L弹出局部变量表(或点菜单栏上的插入,选择局部变量),如图。
4、点击变量名下面的框,输入变量1,点击类型,按下空格键,弹出如下菜单:
选择小数型。同样,添加变量2。
5、同样,全局变量也一样,只不过快捷键为CTRL+G,注意的是,要在窗口程序集里面插入变量。