1. การตรวจสอบเหตุการณ์
รหัสทดสอบ 1:
แพ็คเกจ cn.javastudy.summary; นำเข้า java.awt.*; นำเข้า java.awt.event.*; Public Class TestTextfield {โมฆะคงที่สาธารณะ (สตริง args []) {ใหม่ myframetextfield (); }} คลาส MyFrametextfield ขยายเฟรม {myFrameTextField () {textfield tf = new textField (); เพิ่ม (tf); tf.addactionListener (ใหม่ Monitor3 ()); tf.setechochar ('*'); / * * วิธีการ setechochar () นี้คือการตั้งค่าอักขระที่แสดงเมื่อป้อนในกล่องข้อความ ที่นี่มันถูกตั้งค่าเป็น *เพื่อให้เนื้อหาอินพุตใด ๆ จะแสดงเป็น *แต่คุณยังสามารถดูเนื้อหาอินพุตเมื่อพิมพ์ออก */ setVisible (จริง); หีบห่อ(); }} คลาส Monitor3 ใช้ ActionListener { / * * วิธีการทั้งหมดในอินเทอร์เฟซเป็นสาธารณะ (สาธารณะ) * ดังนั้นเมื่อคัดลอกโมฆะ ActionPerformed (ActionEvent E) จากเอกสาร API คุณต้องเพิ่มสาธารณะในหน้าโมฆะ * /โมฆะสาธารณะ ข้อมูลที่เกี่ยวข้องของเหตุการณ์สามารถรับได้ผ่านวิธีการที่เกี่ยวข้องของวัตถุ e*/ textfield tf = (textfield) e.getSource (); / * * วิธีการ getSource () คือการรับแหล่งที่มาของเหตุการณ์ หมายเหตุ: เมื่อคุณได้รับแหล่งที่มาของเหตุการณ์นี้ * ถือว่าเป็นคลาสแม่ของ TextField คำจำกัดความของวิธีการ getSource () คือ: "วัตถุสาธารณะ getSource ()" ค่าส่งคืนเป็นวัตถุวัตถุ * ดังนั้นคุณต้องส่งมันไปยังวัตถุประเภท textfield * หากคุณต้องการเข้าถึงวัตถุแหล่งที่มาของคลาสของคลาสอื่นในคลาสหนึ่งคุณสามารถใช้วิธีการ getSource () tf.settext (""); // ล้างเนื้อหาในกล่องข้อความ}} รหัสทดสอบ 2:
แพ็คเกจ cn.javastudy.summary; นำเข้า Java.awt.*; นำเข้า Java.awt.event.*; Public Class TestactionEvent2 {โมฆะคงที่สาธารณะหลัก (สตริง args []) {เฟรม F = เฟรมใหม่ ("testactionEvent"); ปุ่ม btn1 = ปุ่มใหม่ ("เริ่ม"); ปุ่ม btn2 = ปุ่มใหม่ ("หยุด"); Monitor2 M2 = ใหม่ monitor2 (); // สร้างวัตถุการฟัง btn1.addactionListener (M2); /*วัตถุฟังฟังการกระทำของสองปุ่มในเวลาเดียวกัน*/ btn2.addactionListener (M2); BTN2.SetActionCommand ("GameOver"); // ตั้งค่าข้อมูลการส่งคืนหลังจากดำเนินการคำสั่งคลิกของ BTN2 F.ADD (BTN1, BorderLayout.north); F.Add (BTN2, BorderLayout.Center); f.pack (); f.setVisible (จริง); }} คลาส Monitor2 ใช้ ActionListener {โมฆะสาธารณะ ActionPerformed (ActionEvent E) {System.out.println ("กดปุ่ม"+"ข้อมูลสัมพัทธ์คือ:/n"+e.getActionCommand ()); /* ใช้วัตถุการฟังที่ส่งคืน e เพื่อเรียกเมธอด getActionCommand () เพื่อรับข้อมูลการส่งคืนหลังจากปุ่มสองปุ่มเรียกใช้คำสั่งคลิก ตามข้อมูลการส่งคืนที่แตกต่างกันปุ่มใดคือการดำเนินการปัจจุบัน BTN1 ไม่ได้ใช้เมธอด setActionCommand () ในการตั้งค่าดังนั้นข้อมูลที่ส่งคืนโดย BTN1 คือข้อความที่แสดงบนปุ่ม*/}}2. การตรวจสอบเหตุการณ์ในฟิลด์ข้อความ
รหัสทดสอบ:
แพ็คเกจ cn.javastudy.summary; นำเข้า java.awt.*; นำเข้า java.awt.event.*; Public Class TestTextfield {โมฆะคงที่สาธารณะ (สตริง args []) {ใหม่ myframetextfield (); }} คลาส MyFrametextfield ขยายเฟรม {myFrameTextField () {textfield tf = new textField (); เพิ่ม (tf); tf.addactionListener (ใหม่ Monitor3 ()); tf.setechochar ('*'); / * * วิธีการ setechochar () นี้คือการตั้งค่าอักขระที่แสดงเมื่อป้อนในกล่องข้อความ ที่นี่มันถูกตั้งค่าเป็น *เพื่อให้เนื้อหาอินพุตใด ๆ จะแสดงเป็น *แต่คุณยังสามารถดูเนื้อหาอินพุตเมื่อพิมพ์ออก */ setVisible (จริง); หีบห่อ(); }} คลาส Monitor3 ใช้ ActionListener { / * * วิธีการทั้งหมดในอินเทอร์เฟซเป็นสาธารณะ (สาธารณะ) * ดังนั้นเมื่อคัดลอกโมฆะ ActionPerformed (ActionEvent E) จากเอกสาร API คุณต้องเพิ่มสาธารณะในหน้าโมฆะ * /โมฆะสาธารณะ ข้อมูลที่เกี่ยวข้องของเหตุการณ์สามารถรับได้ผ่านวิธีการที่เกี่ยวข้องของวัตถุ e*/ textfield tf = (textfield) e.getSource (); / * * วิธีการ getSource () คือการรับแหล่งที่มาของเหตุการณ์ หมายเหตุ: เมื่อคุณได้รับแหล่งที่มาของเหตุการณ์นี้ * ถือว่าเป็นคลาสแม่ของ TextField คำจำกัดความของวิธีการ getSource () คือ: "วัตถุสาธารณะ getSource ()" ค่าส่งคืนเป็นวัตถุวัตถุ * ดังนั้นคุณต้องส่งมันไปยังวัตถุประเภท textfield * หากคุณต้องการเข้าถึงวัตถุแหล่งที่มาของคลาสของคลาสอื่นในคลาสหนึ่งคุณสามารถใช้วิธีการ getSource () tf.settext (""); // ล้างเนื้อหาในกล่องข้อความ}} การใช้เครื่องคิดเลขอย่างง่ายโดยใช้คลาส TextField
แพ็คเกจ cn.javastudy.summary; นำเข้า java.awt.*; นำเข้า Java.awt.event.*; Public Class Testmath {โมฆะสาธารณะคงที่หลัก (String args []) {ใหม่ tfframe (); }}/* ที่นี่เป็นหลักเพื่อให้เลย์เอาต์ขององค์ประกอบเครื่องคิดเลข*/คลาส tfframe ขยายเฟรม {tfframe () {/** สร้างกล่องข้อความ 3 กล่องและระบุขนาดเริ่มต้นเป็น 10 อักขระและ 15 อักขระตามลำดับ นี่คือวิธีการก่อสร้างอีกวิธีหนึ่งของ TextField Class Public Field (คอลัมน์ int) */ textfield num1 = New TextField (10); TextField NUM2 = New TextField (10); textfield num3 = New TextField (15); /* สร้างปุ่มเครื่องหมายเท่ากัน*/ ปุ่ม btnequal = ปุ่มใหม่ ("="); btnequal.addactionListener (ใหม่ monmonitor (num1, num2, num3)); /* เพิ่มผู้ฟังลงในปุ่มเครื่องหมายเท่ากันเพื่อให้เหตุการณ์ตอบสนองเกิดขึ้นหลังจากคลิกปุ่ม*/ label lblplus = ฉลากใหม่ ("+"); /* "+" เป็นข้อความแบบคงที่ดังนั้นให้ใช้คลาสฉลากเพื่อสร้างวัตถุข้อความแบบคงที่*/ setLayout (ใหม่ flowlayout ()); /* เปลี่ยนรูปแบบ BorderLayout เริ่มต้นของเฟรมเป็นเค้าโครง flowlayout*/ เพิ่ม (NUM1); เพิ่ม (lblplus); เพิ่ม (num2); เพิ่ม (btnequal); เพิ่ม (num3); หีบห่อ(); setVisible (จริง); }} คลาส MyMonitor ใช้ ActionListener {TextField NUM1, NUM2, NUM3; / * * เพื่อเปิดใช้งานการฟังปุ่มเพื่อทำงานบนกล่องข้อความ * ดังนั้นวัตถุฟิลด์ข้อความสามรายการในคลาส MyMonitor ที่กำหนดเองจะถูกกำหนดไว้ใน NUM1, NUM2, NUM3, * นอกจากนี้ยังกำหนดวิธีตัวสร้างของคลาส MyMonitor วิธีตัวสร้างนี้มีสามพารามิเตอร์ของประเภท textfield, * ใช้เพื่อรับพารามิเตอร์สามประเภทของประเภท textfield ที่ส่งผ่านจากคลาส tfframe * จากนั้นกำหนดพารามิเตอร์ที่ได้รับสามประเภทของประเภท textfield ให้กับพารามิเตอร์สามประเภทของประเภท textfield ที่ประกาศในคลาสนี้ จากนั้นประมวลผล NUM1, NUM2, NUM3 ในเมธอด actionPerformed () */ myMonitor สาธารณะ (textfield num1, textfield num2, textfield num3) {this.num1 = num1; this.num2 = num2; this.num3 = num3; } โมฆะสาธารณะ ActionPerformed (ActionEvent E) { /* ข้อมูลที่เกี่ยวข้องของเหตุการณ์ถูกห่อหุ้มในวัตถุ E ข้อมูลที่เกี่ยวข้องของเหตุการณ์สามารถรับได้ผ่านวิธีการที่เกี่ยวข้องของวัตถุ e*/ int n1 = integer.parseint (num1.getText ());/*num1 object เรียกเมธอด getText () เพื่อให้ได้สตริงข้อความที่แสดงด้วยตัวเอง*/ int n2 = integer.parseint (num2.getText num3.settext ("" + (n1 + n2));/* วัตถุ NUM3 เรียกเมธอด setText () เพื่อตั้งค่าข้อความแสดงผลของตัวเอง*/ num1.settext (""); / * หลังจากการคำนวณเสร็จสมบูรณ์ให้ล้างเนื้อหาของกล่องข้อความ NUM1 และ NUM2 */ num2.settext (""); // num3.settext (string.valueof ((n1+n2))); /* เมื่อสตริงเชื่อมต่อกับข้อมูลทุกประเภทโดยใช้ "+" สตริงจะต้องเป็นสตริง * นี่คือสตริงที่ว่างเปล่าและหมายเลขประเภท int เพื่อให้หมายเลขประเภท int ที่ได้รับโดย (N1+N2) สามารถแปลงโดยตรงเป็นสตริง * นี่เป็นเคล็ดลับเล็ก ๆ ในการแปลงประเภทข้อมูลพื้นฐานอื่น ๆ เป็นสตริง * คุณยังสามารถใช้ "string.valueof ((N1+N2))" เพื่อแปลงผลรวมของ (N1+N2) เป็นสตริง */}} การใช้งานแบบคลาสสิกใน Java: การอ้างอิงการอ้างอิงไปยังชั้นเรียนอื่นในชั้นเรียนหนึ่ง
แพ็คเกจ cn.javastudy.summary; นำเข้า java.awt.*; นำเข้า Java.awt.event.*; Public Class Testmath1 {โมฆะคงที่สาธารณะหลัก (String args []) {ใหม่ ttmyframe () LaunchFrame (); /* สร้างวัตถุ ttmyframe และเรียกใช้เมธอด lauchframe () เพื่อแสดงฟอร์มเครื่องคิดเลข*/}}/* ทำให้อินเทอร์เฟซแบบฟอร์มของเครื่องคิดเลข*/คลาส Ttmyframe ขยายเฟรม {/* ห่อหุ้มรหัสการออกแบบฟอร์มเครื่องคิดเลขลงในวิธี*/textfield num1 โมฆะสาธารณะ LaunchFrame () {num1 = New TextField (10); NUM2 = New TextField (15); NUM3 = New TextField (15); label lblplus = ใหม่ป้ายกำกับ ("+"); ปุ่ม btnequal = ปุ่มใหม่ ("="); btnequal.addactionListener (ใหม่ mymonitorbtnequal (นี้)); setLayout (ใหม่ flowlayout ()); เพิ่ม (num1); เพิ่ม (lblplus); เพิ่ม (num2); เพิ่ม (btnequal); เพิ่ม (num3); หีบห่อ(); setVisible (จริง); }}/ * * ที่นี่โดยได้รับการอ้างอิงไปยังคลาส TTMYFRAME จากนั้นใช้การอ้างอิงนี้เพื่อเข้าถึงตัวแปรสมาชิกในคลาส TTMYFRAME * วิธีการนี้ดีกว่าวิธีก่อนหน้านี้มากในการเข้าถึงตัวแปรสมาชิกในคลาส TTMYFRAME * วัตถุคลาส TTMYFRAME นี้เป็นเหมือนแม่บ้านขนาดใหญ่และฉันบอกกับแม่บ้านรายใหญ่ว่าฉันต้องการเข้าถึงตัวแปรสมาชิกในชั้นเรียน TTMYFRAME * การอ้างอิงของแม่บ้านขนาดใหญ่จะช่วยฉันค้นหาและฉันไม่จำเป็นต้องพบตัวเองอีกต่อไป * การใช้งานการอ้างอิงการถือครองไปยังคลาสอื่นในคลาสหนึ่งเป็นการใช้งานทั่วไป* ใช้การอ้างอิงที่ได้รับเพื่อเข้าถึงสมาชิกทั้งหมดของคลาสอื่นในคลาสหนึ่ง*/คลาส monmonitorbtnequal onponstement ActionListener {ttmyframe ttmf = null; สาธารณะ myMonitorbtnequal (ttmyframe ttmf) {this.ttmf = ttmf; } โมฆะสาธารณะ ActionPerformed (ActionEvent E) {int n1 = integer.parseint (ttmf.num1.getText ()); int n2 = integer.parseint (ttmf.num2.getText ()); ttmf.num3.settext ("" + (n1 + n2)); ttmf.num1.settext (""); ttmf.num2.settext (""); -ผลการดำเนินการมีดังนี้:
iii. ชั้นเรียนภายใน
ตัวอย่างของชั้นเรียนภายใน:
แพ็คเกจ cn.javastudy.summary; นำเข้า java.awt.*; นำเข้า Java.awt.event.*; Public Class Testmath3 {โมฆะคงที่สาธารณะหลัก (String args []) {ใหม่ mymathframe () LaunchFrame (); }} คลาส mymathframe ขยายเฟรม {textfield num1, num2, num3; โมฆะสาธารณะ LaunchFrame () {num1 = New TextField (10); NUM2 = New TextField (15); NUM3 = New TextField (15); label lblplus = ใหม่ป้ายกำกับ ("+"); ปุ่ม btnequal = ปุ่มใหม่ ("="); btnequal.addactionListener (new monmonitor ()); setLayout (ใหม่ flowlayout ()); เพิ่ม (num1); เพิ่ม (lblplus); เพิ่ม (num2); เพิ่ม (btnequal); เพิ่ม (num3); หีบห่อ(); setVisible (จริง); } /** คลาส monmonitor นี้เป็นคลาสภายในซึ่งกำหนดคลาส myframe ในคลาส myframe ที่เรียกว่าคลาส wrapper* / /** ประโยชน์ของการใช้คลาสภายใน:* ประโยชน์ที่ยิ่งใหญ่ครั้งแรกคือมันสามารถเข้าถึงตัวแปรสมาชิกทั้งหมดและวิธีการ Numbles คลาส MyFrame (คลาสภายนอก),* คุณสามารถเข้าถึงได้โดยตรงใน monMonitor (คลาสภายใน)* นี่คือเทียบเท่ากับวัตถุคลาสภายในที่มีการอ้างอิงไปยังวัตถุคลาสภายนอกโดยค่าเริ่มต้นเมื่อสร้างวัตถุคลาสภายนอก*/ คลาสส่วนตัว monmonitor โดยใช้ ActionListener int n2 = integer.parseint (num2.getText ()); num3.settext ("" + (n1 + n2)); num1.settext (""); num2.settext (""); -ประโยชน์มหาศาลของชั้นเรียนภายในคือ:
4. กราฟิก
รหัสทดสอบ:
แพ็คเกจ cn.javastudy.summary; นำเข้า Java.awt.*; Public Class TestPaint {โมฆะสาธารณะคงที่หลัก (String args []) {new MyPaint (). LaunchFrame (); /*วิธีการทาสี (กราฟิก g) ไม่ปรากฏในวิธีการหลัก () แต่หลังจากสร้างรูปแบบเฟรมคุณจะเห็นว่าวงกลมและสี่เหลี่ยมจะถูกวาดบนรูปแบบเฟรม นี่เป็นเพราะวิธีการสี () เป็นวิธีพิเศษ มันจะเรียกโดยอัตโนมัติเมื่อสร้างแบบฟอร์มเฟรม เมื่อเราลดรูปแบบเฟรมให้น้อยที่สุดและเปิดอีกครั้งเราจะเรียกวิธีการทาสี () อีกครั้งและวาดวงกลมและสี่เหลี่ยมบนรูปแบบเฟรม นั่นคือทุกครั้งที่เราจำเป็นต้องทาสีฟอร์มเฟรมวิธีการสี () จะถูกเรียกโดยอัตโนมัติ*/}} คลาส MyPaint ขยายเฟรม {โมฆะสาธารณะ LaunchFrame () {setBounds (200,200,640,480); setVisible (จริง); } public void paint (กราฟิก g) { / *สี (กราฟิก g) วิธีการมีพารามิเตอร์ประเภทกราฟิก g เราสามารถรักษา g นี้เป็นจิตรกรจิตรกรถือแปรงในมือของเขาและเราวาดภาพต่าง ๆ ที่เราต้องการโดยการตั้งค่าสีและรูปร่างของแปรง * / *ตั้งค่าสีของแปรง * / g.setcolor G.Filloval (100,100,100,100);/*วาดรูปวงรีที่เป็นของแข็ง*/ G.SetColor (สีเขียว); G.FillRect (150,200,200);/*วาดรูปสี่เหลี่ยมผืนผ้าที่เป็นของแข็ง*//*รหัสสองบรรทัดด้านล่างถูกเขียนขึ้นเพื่อพฤติกรรมการเขียนโปรแกรมที่ดีในโปรแกรมการเขียน ตอนนี้คุณควรกู้คืนสีเริ่มต้นของแปรงซึ่งเทียบเท่ากับการทำความสะอาดสีบนแปรงหลังจากจิตรกรใช้แปรง*/ สี c = g.getColor (); G.SetColor (C); -ผลการทำงาน:
5. อะแดปเตอร์กิจกรรมเมาส์
รหัสทดสอบ:
แพ็คเกจ cn.galc.test; นำเข้า java.awt.*; นำเข้า Java.awt.event.*; นำเข้า Java.util.*; คลาสสาธารณะ mymouseadapter {โมฆะคงที่สาธารณะหลัก (สตริง args []) {ใหม่ myframe ( }} คลาส myFrame ขยายเฟรม {arrayList points = null; myFrame (สตริง s) {super (s); คะแนน = new ArrayList (); setlayout (null); Setbounds (300,300,400,300); this.setbackground (สีใหม่ (204,204,255)); setVisible (จริง); this.addmouselistener (ใหม่ monitor ()); } สีโมฆะสาธารณะ (กราฟิก g) {iterator i = points.iterator (); ในขณะที่ (i.hasnext ()) {จุด p = (จุด) i.next (); G.SetColor (color.blue); G.Filloval (PX, PY, 10,10); }} โมฆะสาธารณะ addpoint (จุด P) {points.add (p); }} การตรวจสอบคลาสขยาย mouseadapter {โมฆะสาธารณะ mousepressed (MouseEvent E) {myFrame f = (myFrame) e.getSource (); f.addpoint (จุดใหม่ (e.getx (), e.gety ())); F.Repaint (); -6. เหตุการณ์ Windows
รหัสทดสอบ:
แพ็คเกจ cn.galc.test; นำเข้า java.awt.*; นำเข้า java.awt.event.*; คลาสสาธารณะ testwindowclose {โมฆะคงที่สาธารณะหลัก (สตริง args []) {ใหม่ windowframe ("ปิด windowframe"); }} class windowframe ขยายเฟรม {public windowframe (สตริง s) {super (s); Setbounds (200,200,400,300); setlayout (null); Setbackground (สีใหม่ (204,204,255)); setVisible (จริง); this.addwindowListener (ใหม่ windowmonitor ());/*ฟังการกระทำของแบบฟอร์มนี้ห่อหุ้มข้อมูลการกระทำทั้งหมดลงในวัตถุและส่งผ่านไปยังคลาสการฟัง*/สิ่งนี้ AddwindowListener (/*กำหนดชั้นเรียนในชั้นเรียนนี้ ในการใช้คลาสที่ไม่ระบุชื่อนี้เป็นคลาส Windowadapter SetVisible (FALSE); } /*คลาสการฟังถูกกำหนดเป็นคลาสภายใน* /คลาส windowmonitor ขยาย WindowAdapter { /*WindowAdapter (Adapter หน้าต่าง) ใช้อินเตอร์เฟสการฟัง WindowListener เขียนวิธีทั้งหมดใหม่ในอินเตอร์เฟส WindowListener หากคุณใช้คลาส WindowMonitor ที่กำหนดเองโดยตรงเพื่อใช้อินเตอร์เฟส WindowListener โดยตรงคุณต้องเขียนวิธีทั้งหมดในอินเตอร์เฟส WindowListener แต่ตอนนี้คุณต้องใช้หนึ่งในวิธีการเหล่านี้เท่านั้น ดังนั้นคุณสามารถสืบทอดคลาสย่อยของอินเทอร์เฟซการฟัง WindowListener และเขียนวิธีที่คุณต้องใช้ในคลาสย่อยนี้ใหม่ วิธีนี้ง่ายกว่าและสะดวกกว่าการใช้อินเทอร์เฟซการฟัง WindowListener โดยตรง */*เขียนวิธีการปิดหน้าต่าง (windowevent e) ใหม่ที่ต้องใช้*//*โมฆะสาธารณะ windowclosing (windowevent e) {setVisible (เท็จ);/*ตั้งค่าแบบฟอร์มให้ไม่แสดงและแบบฟอร์มถูกปิด*/system.exit (0);7. เหตุการณ์การตอบกลับแป้นพิมพ์ - KeyEvent
รหัสทดสอบ:
แพ็คเกจ cn.galc.test; นำเข้า java.awt.*; นำเข้า java.awt.event.*; คลาสสาธารณะ testKeyEvent {โมฆะคงที่สาธารณะหลัก (สตริง args []) {keyframe ใหม่ ("เหตุการณ์การตอบสนองคีย์บอร์ด"); }} คีย์เฟรมคลาสขยายเฟรม {คีย์เฟรมสาธารณะ (สตริง s) {super (s); Setbounds (200,200,400,300); setlayout (null); setVisible (จริง); AddkeyListener (Keymonitor ใหม่ ()); } /*กำหนดคลาสการฟังคีย์บอร์ดที่กำหนดเองเป็นคลาสภายใน คลาสการฟังนี้สืบทอดมาจากคลาส Keyadapter ของคีย์บอร์ด สืบทอดมาจากคลาส KeyAdapter เพื่อให้กระชับและสะดวกคุณจะต้องเขียนวิธีที่คุณต้องใช้ใหม่เท่านั้น วิธีนี้ง่ายกว่าและสะดวกกว่าการใช้งานอินเทอร์เฟซ KeyListener โดยตรง หากคุณใช้อินเทอร์เฟซ KeyListener โดยตรงคุณต้องเขียนวิธีทั้งหมดในอินเทอร์เฟซ KeyListener ใหม่ แต่ใช้วิธีเดียวเท่านั้น ด้วยวิธีนี้การเขียนวิธีอื่นใหม่ แต่ไม่ได้ใช้งานได้อย่างหลีกเลี่ยงไม่ได้ทำงานที่ไร้ประโยชน์*/ คลาส Keymonitor ระดับ KeyAdapter {โมฆะ public Keypressed (KeyEvent E) {int keycode = e.getKeyCode (); /*ใช้เมธอด getKeyCode () เพื่อรับรหัสเสมือนของคีย์* / /*หากรหัสเสมือนของคีย์ที่ได้รับเท่ากับรหัสเสมือนของคีย์ UP หมายความว่าคีย์ที่กดอยู่ในปัจจุบันคือ KeyEvent.vk_up หมายความว่ารหัสเสมือนของการรับคีย์ UP แต่ละคีย์ในแป้นพิมพ์สอดคล้องกับรหัสเสมือนจริง รหัสเสมือนเหล่านี้ถูกกำหนดให้เป็นค่าคงที่คงที่ในคลาส KeyEvent ดังนั้นคุณสามารถใช้รูปแบบของ "ชื่อคลาสชื่อคงที่" เพื่อเข้าถึงค่าคงที่แบบคงที่เหล่านี้*/ if (keyve == keyeVent.vk_up) {system.out.println ("คุณกดปุ่ม UP"); }}}}/*แป้นพิมพ์จัดการเหตุการณ์เช่นนี้: แต่ละคีย์สอดคล้องกับรหัสเสมือน เมื่อกดคีย์ที่แน่นอนระบบจะค้นหารหัสเสมือนจริงที่สอดคล้องกับคีย์นี้เพื่อกำหนดคีย์ใดที่กดอยู่ในปัจจุบัน*/ผ่านบทความนี้ฉันได้เรียนรู้การเขียนโปรแกรม GUI กับคุณ ฉันหวังว่าคุณจะมีความเข้าใจที่ครอบคลุมมากขึ้นเกี่ยวกับการเขียนโปรแกรม GUI มีมากกว่านี้เกี่ยวกับการเขียนโปรแกรม GUI และคุณต้องเรียนรู้ต่อไป