หลังจากเรียนรู้เหตุการณ์ Java ฉันได้เขียน Notepad ที่เรียบง่ายมากด้วยตัวเอง Menubar, เมนู, menuitem และการควบคุมอื่น ๆ และกิจกรรมรวมถึง ActionListener และ KeyListener
รหัสมีดังนี้:
แพ็คเกจ com.package3; /** ฟังก์ชั่น: การพัฒนาอย่างง่ายของ Notepad คุณสามารถบันทึกไฟล์เปิดไฟล์และออก Notepad* ผู้แต่ง: ywq*/ import javax.swing.*; นำเข้า java.awt.event.*; นำเข้า Java.io.*; คลาสสาธารณะ Menutext {// กำหนดส่วนประกอบ: JFrame F; Menubar MB; // เมนูเมนูเมนู MU; // เมนู jtextarea jta; Menuitem OpenItem, SaveItem, CloseTem; // Submenu Filedialog Opendia, Savedia; // ไฟล์บันทึกยอดนิยมและเปิดกล่อง // Constructor Public Menutext () {// การเรียกใช้ฟังก์ชันการเริ่มต้น init (); } // เริ่มต้นโมฆะส่วนประกอบสาธารณะ init () {f = new JFrame ("Simple Notepad"); mb = menubar ใหม่ (); mu = เมนูใหม่ ("ไฟล์"); openItem = menuitem ใหม่ ("เปิด"); saveItem = menuitem ใหม่ ("บันทึก"); CloseTem = menuitem ใหม่ ("ออก"); jta = new jtextarea (); F.Add (JTA); // เพิ่ม mu.add (OpenItem); mu.add (SaveItem); mu.add (clositem); mb.add (mu); F.SetMenubar (MB); opendia = ใหม่ filedialog (f, "เปิด", filedialog.load); savedia = new filedialog (f, "บันทึก", filedialog.save); // ตั้งค่าแอตทริบิวต์ JFrame F.SetBounds (200, 300, 500, 400); f.setDefaultCloseoperation (jframe.exit_on_close); f.setVisible (จริง); // การโทรฟังก์ชั่นเหตุการณ์เหตุการณ์ (); } // ฟังก์ชั่นเหตุการณ์เพื่อจัดการเหตุการณ์เหตุการณ์สาธารณะเป็นโมฆะ () {// เปิดตัวเลือก openitem.addactionListener (ใหม่ actionListener () {@Override โมฆะสาธารณะ ActionPerformed (ActionEvent E) {// เรียก openFile ();}}); // บันทึกตัวเลือก saveItem.addactionListener (ใหม่ actionListener () {@Override โมฆะสาธารณะ ActionPerformed (ActionEvent E) {// เรียกวิธีการบันทึกไฟล์ saveFile ();}}); // เพิ่มเหตุการณ์ในพื้นที่ข้อความนั่นคือกด Ctrl+S เพื่อบันทึก // เนื่องจากมีหลายวิธีในการฟังเหตุการณ์บนแป้นพิมพ์และเราต้องการเพียงหนึ่งในนั้นเราสามารถใช้ keyadapter อะแดปเตอร์ // มีวิธีเดียวในการใช้งาน jta.addkeyListener E.getKeycode () == KeyEvent.vk_s) {// การเรียกวิธีการบันทึกไฟล์ // ปิดตัวเลือก option.addactionListener (ใหม่ actionListener () {@Override โมฆะสาธารณะ ActionPerformed (ActionEvent E) {// ออกจากระบบ System.Exit (0);}}); } // วิธีการเปิดข้อความโมฆะสาธารณะ OpenFile () {opendia.setVisible (จริง); // ตั้งค่าเพื่อแสดง // รับพา ธ และชื่อไฟล์สตริง dirpath = opendia.getDirectory (); string filename = opendia.getFile (); // ป้องกันการคลิกเพื่อยกเลิกข้อผิดพลาดหาก (dirpath == null || ชื่อไฟล์ == null) ส่งคืน; jta.settext (""); // ล้างไฟล์พื้นที่ข้อความ = ไฟล์ใหม่ (dirpath, ชื่อไฟล์); // สร้างวัตถุไฟล์ // อ่านข้อมูลตามบรรทัดและแสดงในพื้นที่ข้อความลอง {bufferedreader br = bufferedreader ใหม่ (FilerEader ใหม่ (ไฟล์)); สตริงบรรทัด = null; ในขณะที่ ((line = br.readline ())! = null) {jta.append (line+"/r/n"); } br.close (); } catch (ioexception ex) {โยน runtimeException ใหม่ ("อ่านล้มเหลว"); }} // วิธีการบันทึกข้อความ โมฆะสาธารณะ saveFile () {// ก่อนกำหนดว่าไฟล์มีอยู่ถ้า (ไฟล์ == null) {savedia.setVisible (จริง); String dirpath = savedia.getDirectory (); Filename String = savedia.getFile (); // ป้องกันการคลิกเพื่อยกเลิกข้อผิดพลาดหาก (dirpath == null || ชื่อไฟล์ == null) ส่งคืน; // เนื่องจากไฟล์ไม่มีอยู่ ดังนั้นคุณต้องสร้างไฟล์วัตถุไฟล์ = ไฟล์ใหม่ (dirpath, ชื่อไฟล์); } // เขียนข้อมูลไปยังไฟล์ลอง {bufferedWriter bw = ใหม่ bufferedWriter (FileWriter ใหม่ (ไฟล์)); สตริงข้อมูล = jta.getText (); // รับข้อมูลของพื้นที่ข้อความ bw.write (ข้อมูล); // เขียนการทำงาน bw.flush (); bw.close (); } catch (ioexception e1) {โยน runtimeException ใหม่ (); }} โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// สร้างวัตถุใหม่ menutext (); -ผลการดำเนินการแสดงในรูป:
ฟังก์ชั่นที่ใช้โดยโปรแกรมนี้คือ:
(1) ไฟล์สามารถเปิดและแก้ไขได้
(2) คุณสามารถบันทึกไฟล์ที่แก้ไขได้
(3) คุณสามารถใช้ Ctrl+S เพื่อบันทึกข้อความ
(4) คุณสามารถคลิก closeitem เพื่อออกจากโปรแกรม
เมื่อ ใช้ฟังก์ชั่น 3 จะมีการเพิ่ม keyListener ในพื้นที่ข้อความและ KeyAdapter อะแดปเตอร์จะใช้ในการใช้การฟัง แต่ตอนนี้เมื่อคุณต้องการการฟังแบบผสมผสานนั่นคือการดำเนินการบันทึกจะถูกเรียกใช้เมื่อกดทั้ง CTRL และ S
เกี่ยวกับการฟังแบบรวม Java API ให้วิธีการที่สอดคล้องกัน
ค้นหาคลาสแม่แบบโดยตรงของคลาส Keyevent คือคลาส InputEvent ดังแสดงในรูป:
ตรวจสอบวิธีการในคลาส InputEvent ดังนี้:
ในฐานะที่เป็นคลาสย่อยของคลาส InputEvent วัตถุ E ของคลาส KeyEvent สามารถเรียกได้โดยตรงไปยังวิธีการข้างต้นเพื่อตัดสิน วิธีการ ISCONTOLDOWN () ใช้เพื่อตรวจสอบว่ากดปุ่ม CTRL หรือไม่ ตัวอย่างเช่นถ้า (E.IsconTroldown () && e.getKeyCode () == KeyEvent.vk_s) ในโปรแกรมตระหนักถึงการตัดสินแบบรวมกัน
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น