
java中帮我看看每条代码的意思,顺便写下来,高分求助!
importjava.awt.*;//导入awt包importjava.awt.event.ActionEvent;//导入awt.event.ActionEvent包i...
import java.awt.*; //导入awt包
import java.awt.event.ActionEvent; //导入awt.event.ActionEvent包
import java.awt.event.ActionListener; //导入java.awt.event.ActionListener包
import javax.swing.*; //导入javax.swing包
public class abc { //定义Calculator类
private JFrame jf; //定义JFrame jf
private JButton[] jbs; //定义数组按钮jbs
private JTextField jtf; //定义 TextField
private JButton clear; //定义清除按钮
private double num1,num2,jieguo; //定义三个double类型的变量
private char c; //定义字符型变量c
//构造方法实例化属性
public abc(){ //构造函数开始
jf=new JFrame("我的计算器v1.0"); //JFrame属性赋值
jtf=new JTextField(20); //
clear=new JButton("clear"); //创建clear按钮
jbs=new JButton[16]; //创建16个按钮
String str="123+456-789*0./=";
for(int i=0; i<str.length(); i++){
jbs[i]=new JButton(str.charAt(i)+"");
}
init();
addEventHandler();
showMe();
}
//布局图形界面
public void init(){
JPanel jp1=new JPanel();
jp1.add(jtf);
JPanel jp2=new JPanel();
jp2.setLayout(new GridLayout(4,4));
for(int i=0; i<16; i++){
jp2.add(jbs[i]);
}
JPanel jp3=new JPanel();
jp3.add(clear);
jf.add(jp1,BorderLayout.NORTH);
jf.add(jp2,BorderLayout.CENTER);
jf.add(jp3,BorderLayout.SOUTH);
}
public void addEventHandler(){
ActionListener lis=new ActionListener(){
public void actionPerformed(ActionEvent e){
JButton jb=(JButton)e.getSource();
String str =jb.getText().trim();//把字符串的首尾空格去掉!
if("0123456789.".indexOf(str)!=-1){//如果是数字或点号
jtf.setText(jtf.getText()+str);
return;
}
if("+-*/".indexOf(str)!=-1){
num1=Double.parseDouble(jtf.getText());
jtf.setText("");
c=str.charAt(0);
jtf.setText("");
return ;
}
if(str.equals("=")){
num2=Double.parseDouble(jtf.getText());
switch(c){
case '+': jieguo=num1+num2;break;
case '-': jieguo=num1-num2;break;
case '*': jieguo=num1*num2; break;
case '/': jieguo=num1/num2;break;
}
jtf.setText(Double.toString(jieguo));
return;
}
if(e.getActionCommand().equals("clear")){
jtf.setText("");
return;
}
}
};
for(int i=0; i<jbs.length; i++){
jbs[i].addActionListener(lis);
}
clear.addActionListener(lis); //
}
public void showMe(){
jf.pack();
jf.setVisible(true); //设置可见
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args){
new CaculatorA();
}
} 展开
import java.awt.event.ActionEvent; //导入awt.event.ActionEvent包
import java.awt.event.ActionListener; //导入java.awt.event.ActionListener包
import javax.swing.*; //导入javax.swing包
public class abc { //定义Calculator类
private JFrame jf; //定义JFrame jf
private JButton[] jbs; //定义数组按钮jbs
private JTextField jtf; //定义 TextField
private JButton clear; //定义清除按钮
private double num1,num2,jieguo; //定义三个double类型的变量
private char c; //定义字符型变量c
//构造方法实例化属性
public abc(){ //构造函数开始
jf=new JFrame("我的计算器v1.0"); //JFrame属性赋值
jtf=new JTextField(20); //
clear=new JButton("clear"); //创建clear按钮
jbs=new JButton[16]; //创建16个按钮
String str="123+456-789*0./=";
for(int i=0; i<str.length(); i++){
jbs[i]=new JButton(str.charAt(i)+"");
}
init();
addEventHandler();
showMe();
}
//布局图形界面
public void init(){
JPanel jp1=new JPanel();
jp1.add(jtf);
JPanel jp2=new JPanel();
jp2.setLayout(new GridLayout(4,4));
for(int i=0; i<16; i++){
jp2.add(jbs[i]);
}
JPanel jp3=new JPanel();
jp3.add(clear);
jf.add(jp1,BorderLayout.NORTH);
jf.add(jp2,BorderLayout.CENTER);
jf.add(jp3,BorderLayout.SOUTH);
}
public void addEventHandler(){
ActionListener lis=new ActionListener(){
public void actionPerformed(ActionEvent e){
JButton jb=(JButton)e.getSource();
String str =jb.getText().trim();//把字符串的首尾空格去掉!
if("0123456789.".indexOf(str)!=-1){//如果是数字或点号
jtf.setText(jtf.getText()+str);
return;
}
if("+-*/".indexOf(str)!=-1){
num1=Double.parseDouble(jtf.getText());
jtf.setText("");
c=str.charAt(0);
jtf.setText("");
return ;
}
if(str.equals("=")){
num2=Double.parseDouble(jtf.getText());
switch(c){
case '+': jieguo=num1+num2;break;
case '-': jieguo=num1-num2;break;
case '*': jieguo=num1*num2; break;
case '/': jieguo=num1/num2;break;
}
jtf.setText(Double.toString(jieguo));
return;
}
if(e.getActionCommand().equals("clear")){
jtf.setText("");
return;
}
}
};
for(int i=0; i<jbs.length; i++){
jbs[i].addActionListener(lis);
}
clear.addActionListener(lis); //
}
public void showMe(){
jf.pack();
jf.setVisible(true); //设置可见
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args){
new CaculatorA();
}
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询