1 2 2 1 2 2.1.................................................... 2 2.2.................................................... 2 2.3........................................ 2 2.4.................................................... 2 2.5.................................. 2 2.5.1 MyTextField....................................... 3 2.6............................................. 3 2.6.1 NetBeansIDE()...................... 3 2.6.2.................................. 6 2.6.3.............................................. 8 2.6.4 MyTextField................................... 9 2.7................................................... 10 2.7.1 GUI...................................... 11 3 2 ( 2 ) 12 3.1.................................................... 12 4 12 4.1.................................................. 12 4.2............................................. 12 5 13 5.1 MyTokenizer............................................... 13 5.1.1 MyTokenizer....................................... 13 5.2........................................... 15 5.2.1 Calc............................................ 15 5.2.2............................................ 16 5.3.................................................. 19 A Java 20 A.1 java....................................... 21 A.2 Java.............................................. 22 B GUI 23 C MyTokenizer.java 23 C.1........................................... 23 D 23 E PC 23 E.1 FFFTP...................................... 24 F 24 F.1................................................ 24 1
1 Java 2 1 2.1 1. 2 Java GUI 2. 2.2 1 1, 2 2 jlabel1 jlabel2 jlabel3 jtextfield1 jtextfield2 jtextfield3 jbutton1 jtextfield1 jtextfield2 jtextfield3 1: Swing GUI 2.3 GUI 2.4 2.5 1. jtextfield1 v1 2
2. jtextfield2 v2 3. y v1+v2 4. y jtextfield3 (NumberFormatException) try catch 2.5.1 MyTextField (JTextField ) JTextField MyTextField MyTextField JTextField public void settext(double) settext public double getvalue() 2.6 2.6.1 NetBeansIDE() NetBeansIDE Java C, Javascript, HTML : 1. NetBeansIDE 2. 3. 4. (a) GUI (b) 5. / 1 1, 2 2 3
: 1. NetBeansIDE NetBeansIDE 2. (a) Java (b) (c) JavaJava > (d) CalcProgram (F) 3. (a) (F) (N) (b) Swing GUI JFrame (c) Calc (d) Calc.java Calc GUI 4. 1 ( GUI ) GUI (JFrame) (a) Swing 2 (JFrame) (b) 2: 4
(c) 1 ( ) jtextfield1, jtextfield2 5. 2 ( (a) ActionactionPerformed (b) jbutton1actionperformed p r i v a t e void jbutton1actionperformed ( java. awt. event. ActionEvent evt ) { // TODO add your handling code here : = 1: private void jbutton1actionperformed(java.awt.event.actionevent evt) { double v1, v2, y; i. jtextfield1 v1 ii. jtextfield2 v2 iii. : y v1 + v2 iv. y jtextfield2 1 i. iv. i. jtextfield1 v1 JTextField JTextField gettext String st; // (String ) st = jtextfield1.gettext(); // v1 = Double.valueOf(st); // ii. jtextfield2 v2 v1 st = jtextfield2.gettext(); v2 = Double.valueOf(st); iii. : y = v1 + v2; iv. y jtextfield2 5
st = Double.toString(y); jtextfield2.settext(st); // 6. / (a) (R) (CalcProgram) (b) CalcProgram Calc OK 2.6.2 Calc ( ) (, ) jbutton1 initcomponents Calc() public private () () (public) (private) Calc main Calc main public class Calc extends javax.wing.jframe { public Calc() { initcomponents(); private void initcomponents() {... private void jbutton1actionperformed(java.awt.event.actionevent evt) {... public static void main(string args[]) {... // private javax.swing.jbutton jbutton1; private javax.swing.jlabel jlabel1;... 6
initcomponents private void initcomponents() { jlabel1 = new javax.swing.jlabel(); // jlabel2 = new javax.swing.jlabel();... jlabel1.settext("");... jbutton1.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(java.awt.event.actionevent evt) { jbutton1actionperformed(evt); ); // (ActionListener)... // javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane()); getcontentpane().setlayout(layout);... private void jbutton1actionperformed(java.awt.event.action evt) { double v1, v2, y; String st; st = jtextfield1.gettext(); v1 = Double.valueOf(st);... st = Double.toString(y); jtextfield2.settext(st); ( { ) v1, v2, y, st jbutton1, jlabel1 Calc Calc(), new initcomponents() jlabel1 = new javax.swing.jlabel(); JLabel jlabel1 ( 3) Calc jlabel1 jbutton1actionperformed(... ) v1 JLabel 3: jtextfield2.settext(st); st jtextfield3 settext ( 4) 7
Calc jtextfield3 jbutton1actionperformed(... ) st "52.8" jtextfield3.settext(st) JTextField 4: 2.6.3 ( 5) (Exception) (NumberFormatException) 5: 5 NumberFormatException java try catch try { try catch(exceptiontype param) { try ExceptionType NumberFormatException 5 jbutton1actionperformed 2 jbuttonactionperformed showmessagedialog 6 javax.swing.joptionpane.showmessage... ( import ) java import import C include 8
2: try catch private void jbutton1actionperformed(java.awt.event.actionevent evt) { try { double v1, v2, y; String st; // st... () jtextfield3.settext(st); // jtextfield3 catch (NumberFormatException e) { showmessagedialog(null, ""); import 6: showmessagedialog import 2.6.4 MyTextField GUI Swing JTextField 2 JTextField MyTextField MyTextField jtextfield (jtextfield ) settext(double) double getvalue() 1. MyTextField (a) (F) (b) JavaJava > (c) MyTextField (F) 9
3: MyTextField public class MyTextField extends javax.swing.jtextfield { public void settext(double v) { settext(double.tostring(v)); public double getvalue() { String st = gettext(); return Double.valueOf(st); 2. MyTextField.java 3 3. MyTextField.java 4. Calc.java 5. jtextfield1 jtextfield3 6. MyTextField.java JFrame MyTextField mytextfield1, mytextfield2, mytextfield3 7. jbutton1actionperformed 4 4: jbutton1actionperformed private void jbutton1actionperformed(java.awt.event.actionevent evt) { double v1, v2; try { v1 = mytextfield1.getvalue(); // mytextfield1 v1 v2 = mytextfield2.getvalue(); // mytextfield2 v2 mytextfield3.settext(v1+v2); // mytextfield3 catch(numberformatexception e) { showmessagedialog(null, ""); 2.7 () 10
class Calc Calc( ) jbutton1 = new JButton(); jlabel1 = new JLabel(); jlabel2 = new JLabel(); main( ) JButton jbutton1actionperformed( ) JLabel1 jbutton1 jlabel1 jlabel2 JLabel2 Calc jbutton1actionperformed JButton ( ) try catch private, public ( ) settext(string) settext(double) () extends 2.7.1 GUI NetBeansIDE GUI 1. 2. ( ) Swing GUI JFrame 3. () 4. 5. / 11
3 2 ( 2 ) 3.1 Java GUI 4 12+4.5*(10-6) 12, +, 4.5 (, ) 4.1 7 (, token) C 12+4.5 (10-5) 12 + 4.5 ( 10-5 ) 7: 4.2 12 + 2 3 (10 + 5)/3 3 (term) 12 + 2 * 3 (10 + 5)/3 (factor) 12 + 2 * 3 (10 + 5) / 3 12
(expr) 12 + 2 * 3 ( 10 + 5 ) / 3 (BNF, Backus-Naur form) ::= ± ::= * / ::= ( ) ::= (or) 1 + ::= ( ± ) ::= { ( ) ( / ) ::= ( ) * () 0 ::= { ( ) ( / ) ( )( / ) (0 ) 5 5.1 MyTokenizer java.io.streamtokenizer ( ) ( 7) MyTokenizer 5.1.1 MyTokenizer java.io.streamtokenizer 1. 2. (1 ) StreeamTokenizer () 13
MyTokenizer(String) double nval int ttype static int TT EOF static int TT NUMBER nexttoken int nexttoken() void pushback() 1 ( ) nval nexttoken int nexttoken() ( ) () TT NUMBER TT WORD TT EOF (1 ) 0 1 2 9 8: MyTokenizer 14
input 12.5 (abc + 7.40 )/10 nexttoken() nexttoken() input (abc + 7.40 )/10 input + 7.40 )/10 ttype TT_NUMBER ttype TT_WORD nval 12.5 sval abc nexttoken() pushback() input ttype (abc + 7.40 )/10 input abc + 7.40 )/10 nexttoken() nexttoken() input abc + 7.40 )/10 input + 7.40 )/10 ttype ( ttype sval TT_WORD abc [ ] MyTokenizer () 5.2 5.2.1 Calc 9 ± expression factor + ( ) term * / 9: ( ) 0.4-1.5*(8-3)5+(10-(2+4)/2)/2 15
5.2.2 CalcProgram2 MyTokenizer (: MyTokenizer.java) Clac.java jtextfield1 () jtextfield2 jbutton1 ( ) MyTokenizer token () double expression() double term() double factor() jbutton1 1. token token MyTokenizer token; 2. jbutton1 (a) ( ) token String str = jtextfield1.gettext(); token = new MyTokenizer(str); (b) (expression) double y = expression(); (c) () jtextfield2 jtextfield2.settext(double.tostring(y)); (d) : () () 1 TT EOF( ) showmessage- Dialog 1 1 ( ) import import static javax.swing.joptionpane.*; 16
switch(token.nexttoken()) { case MyTokenizer.TT_EOF: break; case MyTokenizer.TT_NUMBER: showmessagedialog(null,"error! [" + token.nval + "]"); break; default: showmessagedialog(null,"error! ["+(char)token.ttype+"]"); public void jbutton1actionperformed(java.awt....) { (a) token try { (b) (c) [(d) ] // catch(ioexception e) { showmessagedialog(null, ""); 3. expression() + y y + y y y 10: ( ) 10 (a) y y = term(); + y y + y y y (b) while(true) {... + i. () 1 17
token.nexttoken(); switch(ttype) { case...; case...; ii. + y case + : y += term(); break; + y y + y y return y iii. y case + : y -= term(); break; + y y + y y return y iv. : +, (pushback()) y default: token.pushback(); return y; + y y + y y return y private double expression() throws IOException { double y; (a) y while(true) { switch(token.nexttoken()) { ii. + y iii. - y iv. 4. term() 18
double term() * / 5. factor() double factor() nexttoken() ==TT_NUMBER ynval return y == ( ( ) error yexpression() (a) token i. i. expression ii. iii. 5.3 1. term factor 2. +10+2 -(2+3) () 19
A Java (class) ( ) JAVA 3 Java 1.java (object) (20) () (2.5, 4.0) 11: 12 b. (100); // b a. (500); // a (.) class { (;) 20
car a b 1418500 CA001 0 1218335 Jhon Doe GA1234 1200 12: C class 1 2 1 2 3 13: () ( ) { A.1 java example.java [] 21
public class example { String name; public static void main(string args[]) { String localstr; name = ""; localstr = ""; System.out.println(""+name+localStr+" "); set(""); System.out.println(""+name+localStr+""); void set(string st) { name = st; C main 3 main example main set 2 String ( ) name String (String) + A.2 Java 1. private, public 14: 2. ( ) 3. () 22
B C GUI MyTokenizer.java C.1 import java.io.*; public class MyTokenizer extends StreamTokenizer { MyTokenizer(String st) { super( new BufferedReader( new InputStreamReader( new ByteArrayInputStream(st.getBytes())))); resetsyntax(); parsenumbers(); whitespacechars(0, 32); ordinarychar( - ); wordchars( A, Z ); wordchars( a, z ); D ( ) : : E PC wr cs [] Windows USB 23
E.1 FFFTP F 1. 2. 3. 4. ( ) 5. (IDE ) 6. 7. 8. F.1 ( ) 24