程序本来运行只是一个单纯的计算器,谁能帮我在程序的右下角多添一行文本如下效果:
原代码
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class jisuanqi extends Applet implements ActionListener
{
public TextField text;
public Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;
public Panel panel1,panel2,panel3,panel4;
double sum=0;
String op="+";
boolean start=true;
public void init()
{
text=new TextField("");
b1=new Button("1");b2=new Button("2");b3=new Button("3");b4=new Button("4");
b5=new Button("5");b6=new Button("6");b7=new Button("7");b8=new Button("8");
b9=new Button("9");b10=new Button("0");b11=new Button(".");
b12=new Button("+");b13=new Button("-");b14=new Button("*");
b15=new Button("/");b16=new Button("=");b17=new Button("c");
panel1=new Panel(new GridLayout(1,4,10,10));
panel2=new Panel(new GridLayout(1,4,10,10));
panel3=new Panel(new GridLayout(1,4,10,10));
panel4=new Panel(new GridLayout(1,4,10,10));
setLayout(new GridLayout(6,1,10,10));
panel1.add(b7);panel1.add(b8);panel1.add(b9);panel1.add(b15);
panel2.add(b4);panel2.add(b5);panel2.add(b6);panel2.add(b14);
panel3.add(b1);panel3.add(b2);panel3.add(b3);panel3.add(b13);
panel4.add(b10);panel4.add(b11);panel4.add(b16);panel4.add(b12);
add(text);add(b17);add(panel1);add(panel2);add(panel3);add(panel4);
b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);
b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);
b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);
b10.addActionListener(this);b11.addActionListener(this);b12.addActionListener(this);
b13.addActionListener(this);b14.addActionListener(this);b15.addActionListener(this);
b16.addActionListener(this);b17.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
String s=e.getActionCommand();
if('0'<=s.charAt(0)&&s.charAt(0)<='9'||s.charAt(0)=='.')
{ if(start) {text.setText(s); start=false;}
else text.setText(text.getText()+s);
}
else
{
if(s=="c")
{
}
else
{
calculate(new Double(text.getText()).doubleValue());
op=s;
start=true;
}
}
}
public void calculate(double n)
{
if(op=="+") sum=sum+n;
if(op=="-") sum=sum-n;
if(op=="*") sum=sum*n;
if(op=="/") sum=sum/n;
if(op=="=") sum=sum+0;
text.setText(""+sum);
}
}
解决方案 »
- 新手事件处理问题
- 感觉很奇怪,希望有人帮我看看。
- 郁闷的,HttpURLConnection通过POST访问WCF REST服务,100分送!
- 有谁用swing去访问过jboss中的数据源啊!请教。。
- 求救ORCALCE问题
- object[]如何转换成int[]
- 彩色验证码问题
- 提问:if(false == booleanXX){} and if(booleanXX == false){}有什么区别?
- 怎样将printStackTrace函数的结果保存到String中呢?(在线等,马上结贴)
- 例子学着做,做不出来。请指导。
- JComboBox如何能点按钮后不显示下拉的那个组合框呢???
- Math.random( )方法算乘出来的值,能四舍五入吗?
import java.applet.*;
import java.awt.event.*;import javax.swing.JLabel;public class jisuanqi extends Applet implements ActionListener {
public TextField text; public Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14,
b15, b16, b17; public Panel panel1, panel2, panel3,panel4 ,panel5 ; public JLabel l1; double sum = 0; String op = "+"; boolean start = true; public void init() {
text = new TextField("");
b1 = new Button("1");
b2 = new Button("2");
b3 = new Button("3");
b4 = new Button("4");
b5 = new Button("5");
b6 = new Button("6");
b7 = new Button("7");
b8 = new Button("8");
b9 = new Button("9");
b10 = new Button("0");
b11 = new Button(".");
b12 = new Button("+");
b13 = new Button("-");
b14 = new Button("*");
b15 = new Button("/");
b16 = new Button("=");
b17 = new Button("c");
panel1 = new Panel(new GridLayout(1, 4, 10, 10));
panel2 = new Panel(new GridLayout(1, 4, 10, 10));
panel3 = new Panel(new GridLayout(1, 4, 10, 10));
panel4 = new Panel(new GridLayout(1, 4, 10, 10));
panel5 = new Panel(new BorderLayout());
l1 = new JLabel("这是课本274页4.4题"); setLayout(new GridLayout(7, 1, 10, 10));
panel1.add(b7);
panel1.add(b8);
panel1.add(b9);
panel1.add(b15);
panel2.add(b4);
panel2.add(b5);
panel2.add(b6);
panel2.add(b14);
panel3.add(b1);
panel3.add(b2);
panel3.add(b3);
panel3.add(b13);
panel4.add(b10);
panel4.add(b11);
panel4.add(b16);
panel4.add(b12);
panel5.add(l1,BorderLayout.EAST);
add(text);
add(b17);
add(panel1);
add(panel2);
add(panel3);
add(panel4);
add(panel5);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
b12.addActionListener(this);
b13.addActionListener(this);
b14.addActionListener(this);
b15.addActionListener(this);
b16.addActionListener(this);
b17.addActionListener(this); } public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand(); if ('0' <= s.charAt(0) && s.charAt(0) <= '9' || s.charAt(0) == '.') {
if (start) {
text.setText(s);
start = false;
} else
text.setText(text.getText() + s);
} else {
if (s == "c") {
} else { calculate(new Double(text.getText()).doubleValue());
op = s;
start = true;
}
} } public void calculate(double n) {
if (op == "+")
sum = sum + n;
if (op == "-")
sum = sum - n;
if (op == "*")
sum = sum * n;
if (op == "/")
sum = sum / n;
if (op == "=")
sum = sum + 0;
text.setText("" + sum);
}}
JPanel panel5 = new JPanel(new GridLayout(1, 2, 10, 10));
JLabel label = new JLabel("这是课本274页4.4题");
label.setHorizontalAlignment(JLabel.RIGHT );
panel5.add(label);
.
.
.
add(panel5);
其实楼主可以尝试使用拖拽式的Swing界面编程,那样布局方便很多,试试NetBeans吧:)
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class jisuanqi extends Applet implements ActionListener
{
public Label text1;
public TextField text;
public Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;
public Panel panel1,panel2,panel3,panel4;
double sum=0;
String op="+";
boolean start=true;
public void init()
{
text=new TextField("");
b1=new Button("1");b2=new Button("2");b3=new Button("3");b4=new Button("4");
b5=new Button("5");b6=new Button("6");b7=new Button("7");b8=new Button("8");
b9=new Button("9");b10=new Button("0");b11=new Button(".");
b12=new Button("+");b13=new Button("-");b14=new Button("*");
b15=new Button("/");b16=new Button("=");b17=new Button("c");
panel1=new Panel(new GridLayout(1,4,10,10));
panel2=new Panel(new GridLayout(1,4,10,10));
panel3=new Panel(new GridLayout(1,4,10,10));
panel4=new Panel(new GridLayout(1,4,10,10));
text1=new Label("这是课本274页4.4题");
text1.setAlignment(2); setLayout(new GridLayout(7,1,10,10));
panel1.add(b7);panel1.add(b8);panel1.add(b9);panel1.add(b15);
panel2.add(b4);panel2.add(b5);panel2.add(b6);panel2.add(b14);
panel3.add(b1);panel3.add(b2);panel3.add(b3);panel3.add(b13);
panel4.add(b10);panel4.add(b11);panel4.add(b16);panel4.add(b12);
add(text);add(b17);add(panel1);add(panel2);add(panel3);add(panel4); add(text1);
b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);
b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);
b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);
b10.addActionListener(this);b11.addActionListener(this);b12.addActionListener(this);
b13.addActionListener(this);b14.addActionListener(this);b15.addActionListener(this);
b16.addActionListener(this);b17.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
String s=e.getActionCommand();
if('0'<=s.charAt(0)&&s.charAt(0)<='9'||s.charAt(0)=='.')
{ if(start) {text.setText(s); start=false;}
else text.setText(text.getText()+s);
}
else
{
if(s=="c")
{
}
else
{
calculate(new Double(text.getText()).doubleValue());
op=s;
start=true;
}
}
}
public void calculate(double n)
{
if(op=="+") sum=sum+n;
if(op=="-") sum=sum-n;
if(op=="*") sum=sum*n;
if(op=="/") sum=sum/n;
if(op=="=") sum=sum+0;
text.setText(""+sum);
}