
具体代码如下:
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.Containerimport 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()
}
}
丑是丑了点 用还是可以用的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)