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();

}
}
展开
 我来答
sdh88hf
2012-01-05
知道答主
回答量:25
采纳率:0%
帮助的人:12.2万
展开全部
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)+""); //根据字符创建按钮 并将按钮放入jbs集合
}
init(); //调用init方法
addEventHandler();//调用addEventHandler方法
showMe();//调用showMe方法
}
//布局图形界面
public void init(){
JPanel jp1=new JPanel(); //创建一个面板
jp1.add(jtf); //先将文本框添加到面 也就是显示结果和输入数字的文本框

JPanel jp2=new JPanel(); //创建一个面板2
jp2.setLayout(new GridLayout(4,4)); //设定该面板为4行4列布局
for(int i=0; i<16; i++){ //循环jbs和
jp2.add(jbs[i]); //将按钮一个个取出来放到面板2里面
}
JPanel jp3=new JPanel();//创建面板3
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());//先获取文本框的值 并保存到num1

jtf.setText(""); //然后将文本框清空
c=str.charAt(0); //获取操作符号 并保存到c
jtf.setText("");//这里重复操作 垃圾代码
return ;
}
if(str.equals("=")){//如果输入的等于操作
num2=Double.parseDouble(jtf.getText()); //获取文本框的值 保存到num2
switch(c){//判断之前输入的符号
case '+': jieguo=num1+num2;break;//这里的四个就是做加减乘除操作 要点就是讲之前保存的num1 和 num2获取出来 进行操作 将结果保存 jieguo
case '-': jieguo=num1-num2;break;
case '*': jieguo=num1*num2; break;
case '/': jieguo=num1/num2;break;
}
jtf.setText(Double.toString(jieguo));//把jieguo的值 付给当前文本框
return;
}

if(e.getActionCommand().equals("clear")){//如果按时 清除按钮

jtf.setText(""); //情况文本框内容 不过这里也有bug 个人认为应该把num1 和 num2也清0
return;
}
}
};
//对jbs集合进行遍历
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();

}
}

JFrame 其实我没用过,但这是简单的计算器实现,应该比较好理解
恨在相遇的仰望
2012-01-03 · 贡献了超过124个回答
知道答主
回答量:124
采纳率:0%
帮助的人:22万
展开全部
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(); //添加EventHandler事件
showMe(); //显示
}
//布局图形界面
public void init(){
JPanel jp1=new JPanel(); // 创建一个新面板jp1
jp1.add(jtf); //将jtf添加到jp1面板中

JPanel jp2=new JPanel(); // 创建一个新面板jp2
jp2.setLayout(new GridLayout(4,4)); // 给jp2建立GridLayout布局
for(int i=0; i<16; i++){
jp2.add(jbs[i]); //在面板jp2中添加那16个按钮
}
JPanel jp3=new JPanel(); // 创建一个新面板jp3
jp3.add(clear); //在jp3中添加 clear按钮
jf.add(jp1,BorderLayout.NORTH);
jf.add(jp2,BorderLayout.CENTER);
jf.add(jp3,BorderLayout.SOUTH); //在jf窗口中添加jp1,jp2,jp3面板
}
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();

}
}
追问
希望你能帮我在每条代码后写上意思好吗?我可以有偿给你,顺便把这个代码的主题思路帮我写一下,好吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
快乐的路人甲
2012-01-03 · TA获得超过275个赞
知道答主
回答量:118
采纳率:0%
帮助的人:88.8万
展开全部
一楼为了一百分真拼命啊。。。这没什么难理解的。。自己运行一下就知道了,都是化界面的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Lord白
2012-01-06
知道答主
回答量:40
采纳率:0%
帮助的人:23.7万
展开全部
你去看完javax.swing包的基础内容,就可以i理解了,如果你是打算走javaEE的,连看都不用看,用不着
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
36coolboy
2012-01-03 · TA获得超过120个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:201万
展开全部
只是实现了一个计算器的界面,需要的话联系。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式