java平方运算swing_利用java的swing控件实现四则混合运算计算器

其中ExperDemo2这个类在之前的文章里面写过,就不再粘贴一遍了

package expr;

import java.awt.Color;

import java.awt.EventQueue;

import java.awt.Font;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JTextArea;

import javax.swing.JButton;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

public class Calculate extends JFrame {

static String strr;

JButton but[]=new JButton[10];

JButton but1[]=new JButton[7];

private JPanel f;

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

Calculate frame= new Calculate();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

public Calculate() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 737, 462);

f = new JPanel();

f.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(f);

f.setLayout(null);

JTextArea ta = new JTextArea();

ta.setBounds(14, 13, 691, 204);

JButton b=new JButton(new String("c"));

b.setBounds(160, 370, 45,50 );

f.add(b);

f.add(ta);

b.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

ta.setText("");}});

JLabel label;

label = new JLabel("计算一次后点击“C”清除后进行下一次运算");

label.setBounds(220,370, 400, 50);

f.add(label);

String str[]={"=","-","*","/","+","(",")"};

for(int i=0;i=0 && i<5){

but1[i].setBounds(605-100*i, 220, 100, 150);

but1[i].setFont(new Font("宋体", Font.PLAIN, 25));}

if(i==5)

but1[5].setBounds(60, 370, 50, 50);

if(i==6)

but1[6].setBounds(110, 370, 50, 50);

f.add(but1[i]);

but1[i].addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

ta.append(((JButton)e.getSource()).getText());

}});

}

for (int i = 0; i < 10; i++) {

but[i]=new JButton(new String (i+""));

but[i].setForeground(Color.blue);

if(i>=0 && i<3)

but[i].setBounds(10+50*i, 220, 50, 50);

if(i>=3 && i<=5)

but[i].setBounds(10+50*(i-3), 270, 50, 50);

if(i>=6 && i<9)

but[i].setBounds(10+50*(i-6), 320, 50, 50);

if(i==9)

but[i].setBounds(10, 370, 50, 50);

f.add(but[i]);

but[i].addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

ta.append(((JButton)e.getSource()).getText());}});

}

ta.setFont(new Font("宋体", Font.PLAIN, 25));

but1[0].addMouseListener(new MouseAdapter() {

public void mouseReleased(MouseEvent e) {

String str1=ta.getText();

String str2=str1.substring(0, str1.length()-1);

ExprDemo2.s.add('#');

String str3=ExprDemo2.transformz(str2);

double a=ExprDemo2.Calcu(str3);

ta.append(a+"\n");

}});

f.setVisible(true);

}

}

9f79e47557ef77a874762da6fbe3e9d7.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值