Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

อะไรคือความแตกต่างระหว่าง JTextField และ JFormattedTextField ใน Java?


A JTextField สามารถใช้สำหรับข้อความธรรมดาในขณะที่ JFormattedTextField เป็นคลาสที่สามารถขยาย JTextField และสามารถใช้กำหนดรูปแบบใดก็ได้ให้เป็นข้อความที่มีหมายเลขโทรศัพท์ อีเมล วันที่ และอื่นๆ

JTextField

  • A JTextFeld เป็นหนึ่งในองค์ประกอบที่สำคัญที่สุดที่อนุญาตให้ผู้ใช้พิมพ์ค่าข้อความอินพุตในรูปแบบบรรทัดเดียว
  • A JTextField สามารถสร้าง ActionListener ส่วนต่อประสานเมื่อเราพยายามป้อนอินพุตภายในช่องข้อความและสามารถสร้าง CaretListener อินเทอร์เฟซทุกครั้งที่เครื่องหมายรูปหมวก (เช่น เคอร์เซอร์ ) เปลี่ยนตำแหน่ง
  • A JTextField สามารถสร้าง MouseListener . ได้ และ KeyListener อินเทอร์เฟซ

ตัวอย่าง

นำเข้า java.awt.*;นำเข้า java.awt.event.*;นำเข้า javax.swing.*;คลาสสาธารณะ JTextFieldTest ขยาย JFrame { JTextField jtf; JTextFieldTest สาธารณะ () { setTitle ("การทดสอบ JTextField"); setLayout(โฟลว์เลย์เอาต์ใหม่()); jtf =ใหม่ JTextField(15); เพิ่ม (jtf); jtf.addActionListener (ActionListener ใหม่ () { โมฆะสาธารณะ actionPerformed (ActionEvent ae) { System.out.println ("เหตุการณ์ที่สร้าง:" + jtf.getText ()); } }); ขนาดชุด (375, 250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(จริง); } โมฆะคงที่สาธารณะ main (สตริง args []) { ใหม่ JTextFieldTest (); }}

ผลลัพธ์

อะไรคือความแตกต่างระหว่าง JTextField และ JFormattedTextField ใน Java?

JFomattedTextField

  • ฟิลด์ข้อความที่จัดรูปแบบเป็นตัวอย่างของคลาส JFormattedTextField ซึ่งเป็นคลาสย่อยโดยตรงของ JTextField .
  • A JFormattedTextField ก็เหมือนช่องข้อความปกติ ยกเว้นที่ควบคุม ความถูกต้องของอักขระ ประเภทผู้ใช้และสามารถเชื่อมโยงกับ ฟอร์แมตเตอร์ ที่ระบุอักขระที่ผู้ใช้สามารถป้อนได้
  • A JFormattedTextField เป็น subclass ของ Format class เพื่อสร้างฟิลด์ข้อความที่จัดรูปแบบ เราสามารถสร้างฟอร์แมตเตอร์ ปรับแต่งได้หากจำเป็น เราสามารถเรียก JFormattedTextField(Format format) ตัวสร้างซึ่งรับอาร์กิวเมนต์ประเภท รูปแบบ .
<ก่อนหน้า>นำเข้า java.awt.*;นำเข้า javax.swing.*;นำเข้า javax.swing.text.*;คลาสสาธารณะ JFormattedTextFieldTest ขยาย JFrame { JFormattedTextField jftf; MaskFormatter mf; JFormattedTextFieldTest สาธารณะ () { setTitle ("การทดสอบ JFormattedTextField"); setLayout(new FlowLayout()); // ตัวจัดรูปแบบหมายเลขโทรศัพท์ - (รหัสประเทศ)-(รหัสพื้นที่)-(หมายเลข) ลอง { mf =ใหม่ MaskFormatter("##-###-#######"); mf.setPlaceholderCharacter('#'); jftf =JFormattedTextField ใหม่ (mf); jftf.setColumns(12); } จับ (ข้อยกเว้น จ) { e.printStackTrace (); } เพิ่ม (jftf); ขนาดชุด (375, 250); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(จริง); } โมฆะคงที่สาธารณะหลัก (สตริง args []) { JFormattedTextFieldTest ใหม่ (); }}

ผลลัพธ์

อะไรคือความแตกต่างระหว่าง JTextField และ JFormattedTextField ใน Java?