如何用JAVA语言编写计算器小程序?

如何用JAVA语言编写计算器小程序?,第1张

具体代码如下:

import javax.swing.*

import java.awt.event.*

import java.awt.*

public class Calculator  extends JFrame implements ActionListener  {

private JFrame jf

private JButton[] allButtons

private JButton clearButton

private JTextField jtf

public Calculator() {

//对图形组件实例化

jf=new JFrame("任静的计算器1.0:JAVA版")

jf.addWindowListener(new WindowAdapter(){

public void windowClosing(){

System.exit(0)

}

})

allButtons=new JButton[16]

clearButton=new JButton("清除")

jtf=new JTextField(25)

jtf.setEditable(false)

String str="123+456-789*0.=/"

for(int i=0i<allButtons.lengthi++){

allButtons[i]=new JButton(str.substring(i,i+1))

}

}

public void init(){

//完成布局

jf.setLayout(new BorderLayout())

JPanel northPanel=new JPanel()

JPanel centerPanel=new JPanel()

JPanel southPanel=new JPanel()

northPanel.setLayout(new FlowLayout())

centerPanel.setLayout(new GridLayout(4,4))

southPanel.setLayout(new FlowLayout())

northPanel.add(jtf)

for(int i=0i<16i++){

centerPanel.add(allButtons[i])

}

southPanel.add(clearButton)

jf.add(northPanel,BorderLayout.NORTH)

jf.add(centerPanel,BorderLayout.CENTER)

jf.add(southPanel,BorderLayout.SOUTH)

addEventHandler()

}

//添加事件监听

public void addEventHandler(){

jtf.addActionListener(this)

for(int i=0i<allButtons.lengthi++){

allButtons[i].addActionListener(this)

}

clearButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

Calculator.this.jtf.setText("")

}

})

}

//事件处理

public void actionPerformed(ActionEvent e) {

//在这里完成事件处理  使计算器可以运行

String action=e.getActionCommand()

if(action=="+"||action=="-"||action=="*"||action=="/"){

}

}

public void setFontAndColor(){

Font f=new Font("宋体",Font.BOLD,24)

jtf.setFont(f)

jtf.setBackground(new Color(0x8f,0xa0,0xfb))

for(int i=0i<16i++){

allButtons[i].setFont(f)

allButtons[i].setForeground(Color.RED)

}

}

public void showMe(){

init()

setFontAndColor()

jf.pack()

jf.setVisible(true)

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

}

public static void main(String[] args){

new Calculator().showMe()

}

}

import java.awt.Container

import java.awt.GridLayout

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import java.awt.event.FocusAdapter

import java.awt.event.FocusEvent

import java.sql.Date

import java.util.Calendar

import javax.swing.JButton

import javax.swing.JFrame

import javax.swing.JLabel

import javax.swing.JTextField

public class ZuJin extends JFrame {

/**

 * (结束日期-开始日期)÷30×月租金+业务费用+其他费用=总费用

〔(结束日期-开始日期)÷30×月租金+业务费用+其他费用〕÷合租人员=平均费用

需要d出一个租金计算器对话框 分为租金计算信息与租金计算结果两部分

 */

public ZuJin(){

Container c=getContentPane()

c.setLayout(new GridLayout(5, 4))

JLabel j1=new JLabel("开始日期")

c.add(j1)

JTextField jt1=new JTextField(10)

c.add(jt1)

JLabel j2=new JLabel("结束日期")

c.add(j2)

JTextField jt2=new JTextField("")

c.add(jt2)

JLabel j3=new JLabel("月租金(元)")

c.add(j3)

JTextField jt3=new JTextField(5)

c.add(jt3)

JLabel j4=new JLabel("业务费(元)")

c.add(j4)

JTextField jt4=new JTextField(5)

c.add(jt4)

JLabel j5=new JLabel("其他费用(元)")

c.add(j5)

JTextField jt5=new JTextField(5)

c.add(jt5)

JLabel j6=new JLabel("合租人员数量")

c.add(j6)

JTextField jt6=new JTextField(3)

c.add(jt6)

JLabel j7=new JLabel("总费用(元)")

c.add(j7)

JTextField jt7=new JTextField(5)

jt7.setEditable(false)

c.add(jt7)

JLabel j8=new JLabel("平均费用(元)")

c.add(j8)

JTextField jt8=new JTextField(5)

jt8.setEditable(false)

c.add(jt8)

JButton jb1=new JButton("计算")

c.add(jb1)

       jt1.addFocusListener(new FocusAdapter()

        {

            @Override

            public void focusGained(FocusEvent e)

            {

          if (jt1.getText().equals("格式为:0000-00-00")) {

             jt1.setText("")

}

                

            }

            

            @Override

            public void focusLost(FocusEvent e)

            {

             if (jt1.getText().equals("")) {

             jt1.setText("格式为:0000-00-00")

}

                

            }

            

        })

       jt2.addFocusListener(new FocusAdapter()

        {

            @Override

            public void focusGained(FocusEvent e)

            {

          if (jt2.getText().equals("格式为:0000-00-00")) {

             jt2.setText("")

}

                

            }

            

            @Override

            public void focusLost(FocusEvent e)

            {

             if (jt2.getText().equals("")) {

                jt2.setText("格式为:0000-00-00")

}

                

            }

            

        })

jb1.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

Date d1=Date.valueOf(jt1.getText())//开始日期

Date d2=Date.valueOf(jt2.getText())//结束日期

Calendar c1=Calendar.getInstance()

c1.setTime(d1)

Calendar c2=Calendar.getInstance()

c2.setTime(d2)

int day1=c1.get(Calendar.DAY_OF_YEAR)

int day2=c2.get(Calendar.DAY_OF_YEAR)

int days=day2-day1

    double money1=Double.valueOf(jt3.getText())//月租金

    double money2=Double.valueOf(jt4.getText())//业务费

    double money3=Double.valueOf(jt5.getText())//其他费用

    int man=Integer.valueOf(jt6.getText())//人数

    double money4=days/30*money1+money2+money3

double money5=0.0

if (man!=0) {

money5=money4/man

}

else {

money5=money4

}

jt7.setText(String.valueOf(money4))

jt8.setText(String.valueOf(money5))

}

})

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

setBounds(400,400,500,300)

setVisible(true)

setTitle("租金计算器")

}

public static void main(String[] args) {

ZuJin zj=new ZuJin()

}

}

丑是丑了点 用还是可以用的。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11502221.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存