คุณจะสร้างตาราง “JTable” ใน Java ได้อย่างไร

Artículo revisado y aprobado por nuestro equipo editorial, siguiendo los criterios de redacción y edición de YuBrain.


JTable เป็นคลาสที่ใช้ใน Java เพื่อสร้างตารางแบบโต้ตอบที่ ผู้ ใช้สามารถแก้ไขได้ด้วยส่วนประกอบ Swing API ของภาษาการเขียนโปรแกรมนั้น โดยพื้นฐานแล้วประกอบด้วยอินเทอร์เฟซแบบกราฟิกที่ให้คุณแสดงข้อมูลในรูปแบบของตาราง ทำให้คุณสามารถดูและโต้ตอบกับข้อมูลที่แสดงโดย GUI ในรูปแบบต่างๆ รวมถึงการแก้ไขเนื้อหาของตาราง การปรับเปลี่ยน ขนาดของคอลัมน์และแถว จัดลำดับคอลัมน์ต่างๆ ได้ตามต้องการ

การสร้างJTableอย่างง่าย

ตัวอย่างนี้พยายามสร้างตารางอย่างง่ายด้วยข้อมูลต่อไปนี้:

ชื่อจริง นามสกุล เพศ อายุ
เอเดรียน่า หยุด ยี่สิบเอ็ด
ฮวน ปลาหมึก 40
โรซาเลีย เบอร์นาร์ด 67
จูเลียน่า เปเรซ 36
อิสราเอล กอนซาเลซ 36

ตารางนี้จะแสดงในหน้าต่างที่มีแถบเลื่อน เมื่อใช้JTableเพื่อนำเสนอข้อมูลในรูปแบบตาราง เราต้องคำนึงว่า JTable เป็นเพียงอินเทอร์เฟซแบบกราฟิกเท่านั้น และไม่มีข้อมูลที่จะนำเสนอ ข้อมูลนี้ต้องรวมอยู่ในคลาสโมเดล กล่าวอีกนัยหนึ่ง เพื่อให้ตารางของเราสามารถแสดงข้อมูลใดๆ ได้ เราต้องสร้างอินสแตนซ์ของโมเดลข้อมูลก่อน แล้วจึงส่งโมเดลนี้ไปยัง JTable โดยใช้ตัวสร้าง

การสร้างกรอบ

เราต้องคำนึงว่าJTableต้องการเฟรมที่สามารถแสดงได้ ดังนั้นต้องสร้างสิ่งนี้ก่อน และรวมข้อมูลเช่นตำแหน่งและขนาดของเฟรม ตลอดจนระบุว่าเฟรมจะแสดงหรือไม่ .

รหัสทั่วไปเพื่อให้บรรลุเป้าหมายนี้จะเป็น:

คลาสสาธารณะ JTable_Use {

                โมฆะคงที่สาธารณะ main(String[] args) {   

                JFrame myframe=ใหม่ TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(จริง) ;

                }

}

คลาส TableFrame ขยาย JFrame {

                TableFrame สาธารณะ () {

                               setTitle(“ข้อมูลผู้ใช้”);

                               setBounds(200,200,700,500) ;

                }

}

โค้ดด้านบนสร้างเฟรมที่มองเห็นได้ซึ่งอยู่ที่ตำแหน่ง 200×200 และมีขนาด 700×500 พร้อมชื่อ User Data

ตอนนี้ เราจะสร้างตารางที่จะมีข้อมูลเกี่ยวกับผู้ใช้ ข้อมูลนี้จะประกอบด้วย ชื่อ นามสกุล เพศ และอายุ เพื่อจุดประสงค์ในตัวอย่างนี้

มีตัวสร้างหลายตัวที่เราสามารถใช้เพื่อเพิ่มข้อมูลลงในตารางที่เรากำลังสร้าง หนึ่งในคอนสตรัคเตอร์ที่ง่ายที่สุดอนุญาตให้ใช้อาร์เรย์ข้อมูลสองอาร์เรย์เป็นอาร์กิวเมนต์:

JTable(Object[] [] rowData, Object[] ชื่อคอลัมน์)

อย่างที่คุณเห็น นี่เป็นตัวสร้างอย่างง่ายสำหรับJTableที่ใช้เป็นอาร์กิวเมนต์ของพารามิเตอร์ตัวแรกที่เป็นอาร์เรย์ สองมิติ ของประเภทObjectซึ่งจะรวมข้อมูลที่สอดคล้องกับแต่ละแถว ( rowData ) และพารามิเตอร์ตัวที่สองด้วย เป็นอาร์เรย์แต่มีมิติเดียว ยังเป็นประเภทObject ซึ่ง จะรวมส่วนหัวหรือชื่อของคอลัมน์ ( columnName )

กล่าวโดยย่อ ถ้าเราต้องการใช้ตัวสร้างนี้ เราต้องประกาศอาร์เรย์ สอง ตัว ตัวหนึ่งมีสองมิติ และอีกตัวหนึ่งมีหนึ่งมิติ เราทำสิ่งนี้ภายในคลาสที่สร้างเฟรมเวิร์กที่แสดงไว้ด้านบน

เราจะเริ่มต้นด้วยการประกาศอาร์เรย์ที่สอดคล้องกับส่วนหัวของคอลัมน์ เนื่องจากเป็นข้อความจึงจะเป็นประเภทString ด้านล่างนี้ เราจะประกาศอาร์เรย์ สองมิติ ที่สอดคล้องกับข้อมูลที่จะแสดงในแต่ละแถวของตาราง การประกาศอาร์เรย์มีลักษณะดังนี้:

                สตริงส่วนตัว [] columnheads={“ชื่อ”, “นามสกุล”, “เพศ”, “อายุ”} ;

                สตริงส่วนตัว [] [] userData={

                               {“เอเดรียน่า”, “หยุด”, “F”, “21”},

                               {«จอห์น», «คาลามาโร», «M», «40»},

                               {«Rosalía», «เบอร์นาร์ด», « F « , « 67 « },

                               {“จูเลียนา”, “เปเรซ”, “F”, “36”},

                               {“อิสราเอล”, “กอนซาเลซ”, “M”, “36”}

                };

ในรหัสนี้ เราได้ตั้งชื่ออาร์เรย์ที่มีชื่อของคอลัมน์ “cabezadasColumnas” และ “dataUsers” อาร์เรย์ สองมิติ ที่มีข้อมูลของผู้ใช้ห้ารายที่จะรวมอยู่ในตาราง

ตอนนี้เรามีข้อมูลที่เราต้องการให้JTableแสดงแล้ว เราจะใช้ Constructor เพื่อส่งข้อมูลนี้ไปยังJTable เราทำสิ่งนี้ภายใต้กรอบที่เราสร้างไว้ก่อนหน้านี้ เราต้องตั้งชื่อตารางของเรา ดังนั้นเราจะเรียกมันว่า userTable สำหรับตัวอย่างนี้:

JTable tablaUsuarios=ใหม่ JTable(dataUsers, headersColumns) ;

วิธีเพิ่มแถบเลื่อนและการจัดกึ่งกลาง

ณ จุดนี้ เรามีJTableที่แสดงตารางอย่างง่ายที่มี 4 คอลัมน์และ 6 แถว ซึ่งมีแถวแรกที่มีส่วนหัวของคอลัมน์ ตามด้วย 5 แถวที่มีข้อมูลของผู้ใช้ 5 คน อย่างไรก็ตาม ตารางนี้อาจไม่พอดีกับเฟรมขนาด 700×500 ที่เราสร้างขึ้นในตอนเริ่มต้น หรือหากพอดีในตอนนี้ เราอาจเพิ่มข้อมูลเกี่ยวกับผู้ใช้จำนวนมากขึ้นในภายหลัง และอาจไม่พอดีในที่สุด ในกรณีนี้ จะเป็นประโยชน์ในการเพิ่มแถบเลื่อนเพื่อให้แน่ใจว่าข้อมูลทั้งหมดในตารางสามารถมองเห็นได้

เราทำผ่านJScrollPane นอกจากนี้ยังสะดวกที่จะระบุตำแหน่งของตารางของเราภายในกรอบ สำหรับสิ่งนี้ เราใช้BorderLayoutดังนี้:

เพิ่ม (ใหม่ JScrollPane (userTable), BorderLayout.CENTER) ;

รหัสสุดท้าย

หลังจากเพิ่มส่วนทั้งหมดลงในโค้ดแล้ว ควรมีลักษณะดังนี้:

คลาสสาธารณะ JTable_Use {

                โมฆะสาธารณะคงที่ main(String[] args) {   

                JFrame myframe=ใหม่ TableFrame() ;

                               myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ;

                               myframe.setVisible(จริง) ;

                }

}

คลาส TableFrame ขยาย JFrame {

                TableFrame สาธารณะ () {

                               setTitle(“ข้อมูลผู้ใช้”);

                               setBounds(200,200,500,500) ;

                               JTable tablaUsuarios=ใหม่ JTable(dataUsers, headersColumns) ;

                               เพิ่ม (ใหม่ JScrollPane (userTable), BorderLayout.CENTER) ;

                }

                สตริงส่วนตัว [] columnheads={“ชื่อ”, “นามสกุล”, “เพศ”, “อายุ”} ;

                สตริงส่วนตัว [] [] userData={

                               {“เอเดรียน่า”, “หยุด”, “F”, “21”},

                               {«จอห์น», «คาลามาโร», «M», «40»},

                               {«Rosalía», «เบอร์นาร์ด», « F « , « 67 « },

                               {“จูเลียนา”, “เปเรซ”, “F”, “36”},

                               {“อิสราเอล”, “กอนซาเลซ”, “M”, “36”}

                };

}

จะเพิ่มฟังก์ชั่นอื่นๆ ได้อย่างไร?

นอกจากแถบเลื่อนแล้วJTableยังให้คุณเพิ่มฟังก์ชันไม่รู้จบสำหรับแอปพลิเคชันต่างๆ คุณสามารถเพิ่มความเป็นไปได้สำหรับผู้ใช้ในการจัดลำดับแถวตามที่คุณต้องการ คุณสามารถปรับเปลี่ยนลักษณะที่ปรากฏของตารางโดยการปรับเปลี่ยนสีพื้นหลังของเซลล์ แสดงหรือไม่แสดงเส้นขอบ และอื่นๆ

อ้างอิง

Abellán, J. (2007a, 4 กุมภาพันธ์). ตัวอย่างแอปเพล็ต TableModel สำหรับ JTable สืบค้นจาก http://www.chuidiang.org/java/tablas/tablamodelo/applettabla.php

Abellán, J. (2007b, 4 กุมภาพันธ์). ตัวอย่าง TableModel ใน JTable สืบค้นจาก http://www.chuidiang.org/java/tablas/tablamodelo/tablamodelo.php

ยาคอมพิวเตอร์ [pildorasinformaticas]. (2017, 20 กันยายน). หลักสูตรจาวา ภาคผนวก III JTable I. วิดีโอ 267 [ไฟล์วิดีโอ]. กู้คืนจาก https://www.youtube.com/watch?v=yH_g6QGFqes

Sensei, J. (2011, 24 มกราคม). วิธีเลือกแถวจาก Java JTable สืบค้นเมื่อ 13 กันยายน 2021 จาก http://jedicerocool.blogspot.com/2011/01/como-seleccionar-una-fila-de-un-jtable.html

-โฆษณา-

Israel Parada (Licentiate,Professor ULA)
Israel Parada (Licentiate,Professor ULA)
(Licenciado en Química) - AUTOR. Profesor universitario de Química. Divulgador científico.

Artículos relacionados