本文目錄一覽:
java計算器
//強烈要求追加分 你給的分太少了 或許也就我能幫你看啊 呵呵
//你錯誤的地方我給你改正了我都標明了 最主要的錯誤是兩個:
//1.你並沒有創建面板2沒有把面板添加到窗口組建里
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class jsq
{
Frame frmFrame;
Label lb1 = new Label(“計算數”);
TextField tf1 = new TextField(30);
Label lb2 = new Label(“計算符”);
TextField tf2 = new TextField(30);
Label lb3 = new Label(“計算結果”);
TextField tf3 = new TextField(30);
JPanel p1;
JPanel p2;
JPanel p3;
Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn10,btn11,btn12,btn13,btn14,btn15,btn16,btn17,btn18,btn19,btn20;
public jsq()
{
frmFrame = new Frame(“計算器”);
p1 = new JPanel(new BorderLayout());//這裡
p2 = new JPanel(new GridLayout(3,2));//這裡
p3 = new JPanel(new GridLayout(5,4));//這裡
btn1 = new Button(“退出”);
btn1.setActionCommand(“btn1”);
btn2 = new Button(“刪除”);
btn2.setActionCommand(“btn2”);
btn3 = new Button(“清空”);
btn3.setActionCommand(“btn3”);
btn4 = new Button(“+”);
btn4.setActionCommand(“btn4”);
btn5 = new Button(“0”);
btn5.setActionCommand(“btn5”);
btn6 = new Button(“1”);
btn6.setActionCommand(“btn6”);
btn7 = new Button(“2”);
btn7.setActionCommand(“btn7”);
btn8 = new Button(“-“);
btn8.setActionCommand(“btn8”);
btn9 = new Button(“3”);
btn9.setActionCommand(“btn9”);
btn10 = new Button(“4”);
btn10.setActionCommand(“btn10”);
btn11 = new Button(“5”);
btn11.setActionCommand(“btn11”);
btn12 = new Button(“*”);
btn12.setActionCommand(“btn12”);
btn13 = new Button(“6”);
btn13.setActionCommand(“btn13”);
btn14 = new Button(“7”);
btn14.setActionCommand(“btn14”);
btn15 = new Button(“8”);
btn15.setActionCommand(“btn15”);
btn16 = new Button(“/”);
btn16.setActionCommand(“btn16”);
btn17 = new Button(“9”);
btn17.setActionCommand(“btn17”);
btn18 = new Button(“.”);
btn18.setActionCommand(“btn18”);
btn19 = new Button(“=”);
btn19.setActionCommand(“btn19”);
btn20 = new Button(“%”);
btn20.setActionCommand(“btn20”);
p2.add(lb1);
p2.add(tf1);
p2.add(lb2);
p2.add(tf2);
p2.add(lb3);
p2.add(tf3);
p3.add(btn1);
p3.add(btn2);
p3.add(btn3);
p3.add(btn4);
p3.add(btn5);
p3.add(btn6);
p3.add(btn7);
p3.add(btn8);
p3.add(btn9);
p3.add(btn10);
p3.add(btn11);
p3.add(btn12);
p3.add(btn13);
p3.add(btn14);
p3.add(btn15);
p3.add(btn16);
p3.add(btn17);
p3.add(btn18);
p3.add(btn19);
p3.add(btn20);
p1.add(p2,BorderLayout.NORTH);
p1.add(p3,BorderLayout.SOUTH);
frmFrame.pack();
frmFrame.add(p1);//這裡
frmFrame.setVisible(true);
}
public static void main(String[] args)
{
new jsq();
}
}
怎麼用JAVA編程編寫一個計算器?
打開IED:打開自己java編程的軟體,採用的是eclipse軟體。
建立java工程。
編寫類。
編寫類的詳細步驟
1.類的基本結構:
由於這裡用到了界面,所以要進行窗口界面的編程,按鈕事件的處理,和計算處理界面;
package MyCaculator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyCaculator extends JFrame {
private int add=1,sub=2,mul=3,div=4;
private int op=0;
boolean ifOp;
private String output=”0″;
private Button[] jba=new Button[]{new Button(“7”),new Button(“8”),
new Button(“9”),new Button(“+”),
new Button(“4”),new Button(“5”),new Button(“6”),new Button(“-“),
new Button(“1”),new Button(“2”),new Button(“3”),new Button(“*”),
new Button(“0”),new Button(“.”),new Button(“=”),new Button(“/”)};
private JPanel jpt=new JPanel();
private JPanel jpb=new JPanel();
private JTextField jtf=new JTextField(“”);
private MyCaculator(){
}
private void operate(String x){
}
public String add(String x){
return output;
}
public String subtract(String x){
return output;
}
public String multiply(String x){
return output;
}
public String divide(String x){
return output;
}
public String Equals(String x){
return output;
}
public void opClean(){
}
class setOperate_Act implements ActionListener{
public void actionPerformed(ActionEvent e) {
}
}
class setLabel_Act implements ActionListener{
public void actionPerformed(ActionEvent e) {
}
}
public static void main(String[] args) {
}
}
2.建立構造方法:
所謂構造方法就是,對自己的主類進行初始化,代碼如下:
private MyCaculator(){
jpt.setLayout(new BorderLayout());
jpt.add(jtf);
this.add(jpt,BorderLayout.NORTH);
jpb.setLayout(new GridLayout(4,4));
for(int i=0;ijba.length;i++){
jpb.add(jba[i]);
if(i==3||i==7||i==11||i==15||i==14)
jba[i].addActionListener(new setOperate_Act());
else
jba[i].addActionListener(new setLabel_Act());
}
this.add(jpb,BorderLayout.CENTER);
this.setSize(250, 200);
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
3.建立數據計算方法
這裡的數據計算方法有6個,一個是主方法其他幾個是加減乘除的處理方法,代碼如下:
private void operate(String x){
double x1=Double.valueOf(x);
double y=Double.valueOf(output);
switch(op){
case 0:output=x;break;
case 1:output=String.valueOf(y+x1);break;
case 2:output =String.valueOf(y-x1);break;
case 3:output =String.valueOf(y*x1);break;
case 4:
if(x1!=0) output=String.valueOf(y/x1);
else output=”不能為0″;
break;
}
}
public String add(String x){
operate(x);
op=add;
return output;
}
public String subtract(String x){
operate(x);
op=sub;
return output;
}
public String multiply(String x){
operate(x);
op=mul;
return output;
}
public String divide(String x){
operate(x);
op=div;
return output;
}
public String Equals(String x){
operate(x);
op=0;
return output;
}
public void opClean(){
op=0;
output =”0″;
}
4.事件處理方法
這裡的時間處理方法,沒有建立一個整體的方法,二是在為了便於處理的方法,將按鈕事件分成兩個部分,並採用兩個子類來實現,這兩個類時內部類要寫在主類內部的,代碼如下:
class setOperate_Act implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jba[3]){
jtf.setText(add(jtf.getText()));
ifOp=true;
}
else if(e.getSource()==jba[7]){
jtf.setText(subtract(jtf.getText()));
ifOp=true;
}
else if(e.getSource()==jba[11]){
jtf.setText(multiply(jtf.getText()));
ifOp=true;
}
else if(e.getSource()==jba[15]){
jtf.setText(divide(jtf.getText()));
ifOp=true;
}
else if(e.getSource()==jba[14]){
jtf.setText(Equals(jtf.getText()));
ifOp=true;
}
}
}
class setLabel_Act implements ActionListener{
public void actionPerformed(ActionEvent e) {
Button tempb=(Button)e.getSource();
if(ifOp){
jtf.setText(tempb.getLabel());
ifOp=false;
}else {
jtf.setText(jtf.getText()+tempb.getLabel());
}
}
}
5.建立main方法:
要想實現我們的代碼,我們需在main方法中,實例化我們的對象。
public static void main(String[] args) {
new MyCaculator();
}
如何用Java編程迷你計算器
現在是一段核心程序,只有單位數的四則運算,需要實現多位數運算和小數點功能,最好還有正負號。萬分感謝!
import java.awt.*;
import java.applet.*;
public class calc10 extends Applet {
char key,prevopr;
float ans,num;
char[] btext={‘0′,’1′,’2′,’3′,’4′,’5’,
‘6’,’7′,’8′,’9′,’-‘,’+’,’*’,’/’};
Button[] buttons = new Button[btext.length];
public void init() {
for (int i=0; ibtext.length; i++) {
buttons[i] = new Button(“”+btext[i]);
add(buttons[i]);
}
}
public float apply(float num1, char opr, float num2) {
switch (opr) {
case ‘+’: return(ans+num);
case ‘-‘: return(ans-num);
case ‘*’: return(ans*num);
case ‘/’: return(ans/num);
default: return(num);
}
}
public boolean action(Event evt,Object arg){
key = ((String)arg).charAt(0);
if(key=’0′ key=’9′) {
num = (float)(key-‘0’);
showStatus(“”+key);
} else {
ans = apply(ans,prevopr,num);
showStatus( “” + ans );
prevopr=key;
}
return true;
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/236660.html