1 Awt Calc Java package Calc import java
- Slides: 99
ÿ操作步骤 步骤 1:创建一个新的应用程序 Awt. Calc. Java,首先创建一个空的窗口。 package Calc; import java. awt. * ; import java. awt. event. * ; import java. awt. Graphics ;
public class Awt. Calc extends Frame implements Action. Listener { public Awt. Calc(){ super("计算器"); set. Background(Color. light. Gray); resize(235, 210); show(); }
public void action. Performed(Action. Event e) { } public void paint(Graphics g) { g. draw. Rect(0, 0, size(). width 1, size(). height-1); g. draw. Line(0, 0, 0, size(). height); }
public static void main(String args[]) { Awt. Calc ca=new Awt. Calc(); } }
public class EText. Field extends Canvas { String message=""; Boolean first. Time=true; Int x; public EText. Field(int width, int height) { set. Size(width, height); }
public void set. Text(String text) { first. Time=false; message=text; x+=3; repaint(); }
public void paint (Graphics g) { g. draw. Rect(0, 0, size(). width 1, size(). height-1); g. draw. String(message, 3, 13); } }
private String input = ""; // 用户的输 入 private Label label; private Color forecolor, // 前景色 backcolor, // 背景色 fieldcolor; // 显示框颜色 private Font font, buttonfont;
然后在构造函数中添加如下代码,将 构件添加到窗口上。 buttonfont = new Font( "Courier", Font. PLAIN, 12 ); set. Background( Color. light. Gray );
result = new EText. Field( 125, 18 ); font = new Font( "宋体", Font. ITALIC, 10 ); label = new Label( "结果" ); label. set. Font( font ); result. set. Background( Color. white ); set. Layout( new Flow. Layout() ); //初始化按钮
Panel main. Panel=new Panel(); main. Panel. set. Layout(new Grid. Layout(5, 1)); for ( int i = 0; i < 19; i++ ) { buttons[i] = new Button( button. Text[i] ); buttons[i]. set. Font( buttonfont ); buttons[i]. add. Action. Listener( this ); }
Panel panel 1=new Panel(); panel 1. add( result ); panel 1. add( label ); main. Panel. add(panel 1); Panel panel 2=new Panel(); panel 2. add(buttons[0]); panel 2. add(buttons[1]);
panel 2. add(buttons[2]); panel 2. add(new Label( " " )); panel 2. add(buttons[3]); panel 2. add(buttons[4]); main. Panel. add(panel 2); Panel panel 3=new Panel(); panel 3. add(buttons[5]);
panel 3. add(buttons[6]); panel 3. add(buttons[7]); panel 3. add(new Label( " " )); panel 3. add(buttons[8]); panel 3. add(buttons[9]); main. Panel. add(panel 3); Panel panel 4=new Panel(); panel 4. add(buttons[10]);
panel 4. add(buttons[11]); panel 4. add(buttons[12]); panel 4. add(new Label( " " )); panel 4. add(buttons[13]); panel 4. add(buttons[14]); main. Panel. add(panel 4); Panel panel 5=new Panel();
panel 5. add(buttons[15]); panel 5. add(buttons[16]); panel 5. add(buttons[17]); panel 5. add(new Label( " " )); panel 5. add(buttons[18]); main. Panel. add(panel 5); add("Center", main. Panel); buttons[15]. set. Foreground( Color. red );
步骤 4:添加事件的处理部分。 package test; import java. awt. *; import java. awt. event. *; import java. awt. Graphics; public class Awt. Calc extends Frame implements Action. Listener {
private Button[] buttons = new Button[19]; private String[] button. Text = { " 1 " , " 2 ", " 3 ", " + ", " - ", " 4 ", " 5 ", " 6 ", " x ", " / ", " 7 ", " 8 ", " 9 ", "^ ", "sqrt", " C ", " 0 ", " = "};
private EText. Field result; // 结果显示 框 private String input = ""; // 用户的输 入 private Label label; private Color forecolor, // 前景色 backcolor, // 背景色 fieldcolor; // 显示框颜色
private Font font, buttonfont; private int oper = 0, // 记录运算过程中的运算符 oldoper = 0, newoper = 0;
private double answer, num 1 = 0. 0, num 2 = 0. 0, num 3 = 0. 0; private final int ADD=1, // 用于记录运算符的常量
SUB = 2, MULT = 3, DIVI = 4, POW = 5, SQRT = 6; private boolean firstpress = true, //是 否按下第一个按键
morenums = false, //是否多个数值被输入 equals = false, //等于是否已经被按下 clearscreen = false, //是否清屏 decnumber = false, //是否输入一个浮点数 doubleclick = false; //是否双击
public Awt. Calc(){ super("计算器"); //初始化颜色 buttonfont = new Font( "Courier", Font. PLAIN, 12 ); set. Background( Color. light. Gray );
result = new EText. Field( 125, 18 ); font = new Font( "宋体", Font. ITALIC, 10 ); label = new Label( "结果" ); label. set. Font( font ); result. set. Background( Color. white ); set. Layout( new Flow. Layout() ); //初始化按钮
Panel main. Panel=new Panel(); main. Panel. set. Layout(new Grid. Layout(5, 1)); for ( int i = 0; i < 19; i++ ) { buttons[i] = new Button( button. Text[i] ); buttons[i]. set. Font( buttonfont ); buttons[i]. add. Action. Listener( this ); }
Panel panel 1=new Panel(); panel 1. add( result ); panel 1. add( label ); main. Panel. add(panel 1); Panel panel 2=new Panel(); panel 2. add(buttons[0]); panel 2. add(buttons[1]);
panel 2. add(buttons[2]); panel 2. add(new Label( " " )); panel 2. add(buttons[3]); panel 2. add(buttons[4]); main. Panel. add(panel 2);
Panel panel 3=new Panel(); panel 3. add(buttons[5]); panel 3. add(buttons[6]); panel 3. add(buttons[7]); panel 3. add(new Label( " " )); panel 3. add(buttons[8]); panel 3. add(buttons[9]); main. Panel. add(panel 3);
Panel panel 4=new Panel(); panel 4. add(buttons[10]); panel 4. add(buttons[11]); panel 4. add(buttons[12]); panel 4. add(new Label( " " )); panel 4. add(buttons[13]); panel 4. add(buttons[14]); main. Panel. add(panel 4);
Panel panel 5=new Panel(); panel 5. add(buttons[15]); panel 5. add(buttons[16]); panel 5. add(buttons[17]); panel 5. add(new Label( " " )); panel 5. add(buttons[18]); main. Panel. add(panel 5);
add("Center", main. Panel); buttons[15]. set. Foreground( Color. red ); resize(235, 210); show(); }
public void action. Performed( Action. Event e) { // 判断是否按下一个运算符键 if ( e. get. Source() != buttons[3] && e. get. Source() != buttons[4]
&& e. get. Source() != buttons[8] && e. get. Source() != buttons[9] && e. get. Source() != buttons[13] && e. get. Source() != buttons[14] && e. get. Source() != buttons[15] && e. get. Source() != buttons[18] ) { //按下一个数字键
if ( clearscreen ) { // 在完成一次运算后再次按下运算符之前 清屏 clear. Screen(); clearscreen = false; }
if ( e. get. Source() == buttons[0] ) { input += "1"; // 输入为"1" result. set. Text( input ); show. Answer( input ); } // end else if ( e. get. Source() == buttons[1] ) { input += "2"; // 输入为"2" show. Answer( input ); } // end else if
else if ( e. get. Source() == buttons[2] ) { input += "3"; // 输入为"3" show. Answer( input ); } // end else if ( e. get. Source() == buttons[5] ) { input += "4"; // 输入为"4" show. Answer( input ); } // end else if
else if ( e. get. Source() == buttons[6] ) { input += "5"; // 输入为"5" show. Answer( input ); } // end if else if ( e. get. Source() == buttons[7] ) { input += "6"; // 输入为"6"
show. Answer( input ); } // end else if ( e. get. Source() == buttons[10] ) { input += "7"; // 输入为"7" show. Answer( input ); } // end else if
else if ( e. get. Source() == buttons[11] ) { input += "8"; // 输入为"8" show. Answer( input ); } // end else if ( e. get. Source() == buttons[12] ) { input += "9"; // 输入为"9" show. Answer( input ); } // end else if
else if ( e. get. Source() == buttons[16] ) { input += "0"; // 输入为"0" show. Answer( input ); } // end else if ( e. get. Source() == buttons[17] ) { if ( decnumber == false ) { //设置输入为浮点数
if ( e. get. Source() == buttons[3] ) { clearscreen = false; decnumber = false; oper = ADD; // 将运算符设置为加 click. Check( input ); // 检查是否为双击运算符
else if (e. get. Source() == buttons[4] ) { clearscreen = false; decnumber = false; oper = SUB; // 将运算符设置为减 click. Check( input ); // 检查是否为双击运算符
else if (e. get. Source() == buttons[8] ) { clearscreen = false; decnumber = false; oper = MULT; // 将运算符设置为乘法 click. Check( input ); // 检查是否为双击运算符
else if (e. get. Source() == buttons[9] ) { clearscreen = false; decnumber = false; oper = DIVI; // 将运算符设置为除法 click. Check( input ); // 检查是否为双击运算符
else if ( e. get. Source() == buttons[13] ) { clearscreen = false; decnumber = false; oper = POW; // 将运算符设置为幂 click. Check( input ); // 检查是否为双击运算符
else if ( e. get. Source() == buttons[14] ) { clearscreen = false; oper = SQRT; // 将运算符设置为开方 click. Check( input ); // 检查是否为双击运算符
if (e. get. Source() == buttons[15] ) { clear. Screen(); } // end if // 检查是否按下等于按钮
if (e. get. Source() == buttons[18] ) { equals = true; clearscreen = true; click. Check( input ); //检查是否为双击运算符 if ( doubleclick == false ) process. Numbers(); //如果没有双击, 继续处理
if ( firstpress ) { if ( equals ) { num 1 = answer; //结果被保存 equals = false; //等待另外的输入 } // end if else num 1 = Double. value. Of( input ). double. Value();
oldoper = oper; // 将当前运算符保存 // 如果进行开方运算 if ( oper == SQRT ) { answer = calculate( oldoper, num 1, 0. 0 );
show. Answer( Double. to. String( answer ) ); morenums = true; } firstpress = false; } // end if else if ( !morenums ) {
num 2 = Double. value. Of( input ). double. Value(); answer = calculate( oldoper, num 1, num 2 ); show. Answer( Double. to. String( answer) ); newoper = oper;
if ( !equals ) morenums = true; //标识已经有至少两个数值被输入 else { morenums = false; //如果等号被按下, firstpress将被置为true firstpress = true; } // end else } // end if
else if (morenums) { //输入多个数值 if ( equals ) { newoper = oper; morenums = false; firstpress = true; } // end if
num 3 = Double. value. Of( input ). double. Value(); answer = calculate( newoper, answer, num 3 ); show. Answer( Double. to. String(answer) ); newoper = oper; } // end else if } // end process. Numbers()
public double calculate( int oper, double number 1, double number 2 ) { double answer = 0. 0; switch( oper ) { case ADD: answer = number 1 + number 2; break;
case SUB: answer = number 1 - number 2; break; case MULT: answer = number 1 * number 2; break; case DIVI: answer = number 1 / number 2;
break; case POW: answer = Math. pow( number 1, number 2 ); break; case SQRT: answer = Math. sqrt( number 1 ); break; } // end switch
//=============================== ===== public void show. Answer( String s ) { double answer; answer = Double. value. Of(s). double. Value();
if ( decnumber ) result. set. Text( Double. to. String(answer) ); else result. set. Text( s ); } // end show. Answer
public boolean click. Check( String s ) { if ( s == "" ) doubleclick = true; else doubleclick = false; return doubleclick; }
public void clear. Screen() { oper = 0; // 初始化各个变量 input = ""; answer = 0; decnumber = false; morenums = false; firstpress = true; equals = false; show. Answer( Integer. to. String( (int)answer) ); }
public void paint( Graphics g ) { //绘制边界 g. draw. Rect( 0, 0, size(). width - 1, size(). height - 1 ); g. draw. Line( 0, 0, 0, size(). height ); }
public static void main(String[] args){ Awt. Calc ca=new Awt. Calc(); } } // end program
- Import java.awt.event.*
- Import java.awt.* import java.applet.*
- Import java
- Import java.awt.*
- Import awt
- Import javax.swing.*;
- Java
- Import java.awt.event.*
- Import java.awt
- Import java.awt.*;
- Import java color
- Import java.awt.*
- Java awt import
- Awt adalah
- Unity import package characters
- Java thread import
- Import java.util.scanner;
- Import java.util.random;
- Import java.util.*
- Import java.io.* in java
- Import java.util
- Public class
- Java import java.util.*
- Import numpy as np import matplotlib.pyplot as plt
- Applety
- Layout manager in awt
- Java awt event listener
- Awt layout
- Swing vs awt
- Java awt swing
- Java gui awt
- Java package design
- Java lang math class
- Package in java
- Jscroll demo
- Java package naming convention
- Uml java examples
- Java random package
- Java network
- Java lang package
- Javax.servlet
- Import filewriter
- Import java.util.* class vector
- G.draw
- Import java.util. public
- Java scanner import
- Strings in java
- Import java util random
- Boost tokenizer example
- Java
- Java static import
- Import java.applet.applet
- Import java.io.*
- 자바 매개변수
- Import java.applet.*
- Import java.util.* class test collection 15
- Import java.util.stringtokenizer;
- Bitcicon
- Mmmm meaning
- Applet example
- Java import *
- Problem solving
- Interface in java
- Applet class
- Tanslate
- Java import class
- Layout swing
- Perbedaan xml dan html
- The awt toolkit window
- Advanced staged gasifier
- Awt
- Awt gui
- Komponen awt
- Which is a component in awt that can contain
- Awt abstract window toolkit
- Awt 039
- Swing vs awt
- Difference between swing and applet
- Difference between applet and awt
- Oral medication calculation formula
- Norc acronym
- Fundamental theorem of calculus
- Apple calc
- Calc
- Formal charge formula
- 5-a-day language review week 17 answer key
- How to know if a line is perpendicular
- Rolles theorem
- Calcweb
- Pg calc
- Circular
- Spfs calc
- Epics calc record
- Formal charge equation
- Drop factor formula with example
- Hi ry
- Pre calc sequences and series
- Finding reference angles
- Factorising calc
- Ascrs post lasik iol calculator