當前位置:編程學習大全網 - 編程語言 - 哥們,妳的那個用java編寫的記牌器實現了沒有?

哥們,妳的那個用java編寫的記牌器實現了沒有?

不知道是不是剛剛同壹個問題

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Counter implements ActionListener{

/**

* @param args

*/

private JFrame frame;

private JTextField field;

private JButton clear_but;

private JButton[] buttons;

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

public Counter() {

frame=new JFrame("計算器t\t\t\t\t\t\t");

field=new JTextField(15);

clear_but=new JButton("C");

buttons=new JButton[25];

for(int i=0;i<str.length();i++)

{

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

}

field.setText("");

}

private void init(){

addEventHandler();

frame.setLayout(new BorderLayout());

JPanel n_panel=new JPanel();

JPanel c_panel=new JPanel();

n_panel.setLayout(new FlowLayout());

frame.add(n_panel,BorderLayout.NORTH);

n_panel.add(field);

n_panel.add(clear_but);

c_panel.setLayout(new GridLayout(4,4));

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

{

c_panel.add(buttons[i]);

}

frame.add(c_panel, BorderLayout.CENTER);

}

public void showMe(){

init();

frame.setSize(300, 240);

//frame.pack();// frame.setLocation(400,360);

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

private void addEventHandler(){

//clear_but.addActionListener(new MyActionListener());

clear_but.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

field.setText("");

}

});

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

{

final int in=i;

buttons[i].addActionListener(this);

// @Override

// public void actionPerformed(ActionEvent e) {

// System.out.print(e.getActionCommand());

// //System.out.print(str.substring(in, in+1));

// }

//

}

}

String num="";

String flag="";

//@Override

public void actionPerformed(ActionEvent e) {

String str=e.getActionCommand();

if(str.equals("=")){

Double a=Double.valueOf(num);

Double b=Double.valueOf(field.getText());

double sum=0;

if(flag.equals("+")){

sum=a+b;

field.setText(sum+"");

}

if(flag.equals("-")){

sum=a-b;

field.setText(""+sum);

}

if(flag.equals("*")){

sum=a*b;

field.setText(""+sum);

}

if(flag.equals("/")){

sum=a/b;

field.setText(""+sum);

}

System.out.println(a+flag+b+"="+sum);

}

else if(".0123456789".indexOf(str)!=-1){

String newtext=field.getText();

newtext+=str;

field.setText(newtext);

//System.out.print(str);

}

else if(str.matches("[+*-/]{1}")){

//else if("+-*/".indexOf(str)!=-1){

num=field.getText();

field.setText("");

flag=str;

// System.out.print(str);

}

}

}

//class MyActionListener implements ActionListener{

//

// //@Override

// public void actionPerformed(ActionEvent e) {

// System.out.print("22222");

// }

//

//}

  • 上一篇:WRO世界奧林匹克機器人中國區選拔賽能在高考中加分嗎?
  • 下一篇:數控加工編程與操作書籍目錄
  • copyright 2024編程學習大全網