1: ตาราง (JTable):
1.แนวคิดพื้นฐาน:
Table (JTable) เป็นส่วนประกอบใหม่ของ Swing โดยส่วนใหญ่จะใช้เพื่อแสดงข้อมูลในรูปแบบตาราง
2. วิธีการก่อสร้างที่ใช้กันทั่วไป:
* JTable(): สร้างอินสแตนซ์ JTable โดยใช้โมเดลเริ่มต้นของระบบ
* JTable(int numRows, int numColumns): สร้างตารางว่างโดยใช้ DefaultTableModel เพื่อระบุแถวและคอลัมน์
* JTable(Object[ ][ ] rowData,Object[ ][ ] columnNames): สร้างตารางที่แสดงข้อมูลสองมิติ
สามารถสร้างตารางได้โดยตรงโดยใช้อาร์เรย์ชื่อคอลัมน์ของตารางและอาร์เรย์ข้อมูลตาราง
* JTable(TableModel dm): สร้างอินสแตนซ์ JTable ที่ระบุสคีมาข้อมูลและสคีมาฟิลด์เริ่มต้น
ออบเจ็กต์ของคลาสโมเดลข้อมูลมักจะใช้เพื่อบันทึกข้อมูล และโมเดลตารางจะถูกสร้างขึ้นผ่านอาร์เรย์ชื่อคอลัมน์ของตารางและอาร์เรย์ข้อมูลตาราง
3. วิธีการที่ใช้กันทั่วไป:
4. กรณีที่ครอบคลุม:
รหัส 1:
คัดลอกรหัสรหัสดังต่อไปนี้:
คลาสสาธารณะ JTableDemo1 ขยาย JFrame {
//กำหนดตาราง
เจโต๊ะ;
//กำหนดแผงแถบเลื่อน (เพื่อให้ตารางเลื่อนได้)
JScrollPane scrollPane;
//กำหนดวัตถุของคลาสแบบจำลองข้อมูล (ใช้ในการบันทึกข้อมูล)
DefaultTableModel tableModel;
JTableDemo1 สาธารณะ () {
ซุปเปอร์();
setTitle("โมเดลตารางและตาราง");
scrollPane = JScrollPane ใหม่ ();
//กำหนดชื่อคอลัมน์ของตารางอาร์เรย์
สตริง[] columnNames = { "A", "B", "C" };
//กำหนดอาร์เรย์ข้อมูลตาราง
สตริง[][] tableValues = { { "A1", "B1", "C1" }, { "A2", "B2", "C2" },
{ "A3", "B3", "C3" }, { "A4", "B4", "C4" } };
//สร้างอ็อบเจ็กต์ของคลาสโมเดลตารางโดยระบุชื่อคอลัมน์ของตารางและข้อมูลตาราง
tableModel = DefaultTableModel ใหม่ (tableValues, columnNames);
//สร้างตารางตามโมเดลที่ระบุ
ตาราง = JTable ใหม่ (tableModel);
//Set RowSorter (RowSorter ใช้เพื่อจัดเตรียมการเรียงลำดับและการกรอง JTable)
table.setRowSorter(TableRowSorter ใหม่<DefaultTableModel>(tableModel));
scrollPane.setViewportView(ตาราง);
getContentPane().add(scrollPane, BorderLayout.CENTER);
ตั้งค่าขอบเขต(300, 200, 400, 300);
setVisible (จริง);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
โมฆะคงสาธารณะ main (String args []) {
ใหม่ JTableDemo1();
-
-
ภาพหน้าจอที่ 1:
รหัส 2:
คัดลอกรหัสรหัสดังต่อไปนี้:
นำเข้า java.awt.*;
นำเข้า javax.swing.*;
คลาสสาธารณะ JTableDemo3 {
เฟรมเจเฟรม;
แผง JPanel;
JScrollPane scrollPane1, scrollPane2, scrollPane3;
เจเทเบิล jtable1, jtable2, jtable3;
JTableDemo3 สาธารณะ () {
frame = new JFrame("JTableDemo");
jtable1 = JTable ใหม่ (8, 6);
วัตถุสุดท้าย [] columnNames = { "ชื่อ", "เพศ", "ที่อยู่บ้าน", // ชื่อคอลัมน์ได้รับการแก้ไขอย่างดีที่สุดด้วยสุดท้าย
"หมายเลขโทรศัพท์", "วันเกิด", "งาน", "รายได้", "สถานภาพสมรส", "สถานะความสัมพันธ์" };
วัตถุ [] [] แถวข้อมูล = {
{ "ddd", "ชาย", "หนานจิง, เจียงซู", "1378313210", "03/24/1985", "นักเรียน", "ปรสิต",
"ยังไม่ได้แต่งงาน", "ไม่ใช่" },
{ "eee", "เพศหญิง", "หนานจิง, เจียงซู", "13645181705", "xx/xx/1985", "ครูสอนพิเศษ", "ไม่ทราบ",
"ยังไม่ได้แต่งงาน", "ดูเหมือนว่าจะไม่" },
{ "fff", "ชาย", "หนานจิง, เจียงซู", "13585331486", "12/08/1985", "พนักงานขายรถยนต์",
"ไม่แน่ใจ", "ยังไม่ได้แต่งงาน", "ใช่" },
{ "ggg", "เพศหญิง", "หนานจิง, เจียงซู", "81513779", "xx/xx/1986", "ผู้ดูแลโรงแรม",
"กำหนดไว้แต่ไม่ทราบ", "ยังไม่ได้แต่งงาน", "ใช่" },
{ "hhh", "ชาย", "หนานจิง, เจียงซู", "13651545936", "xx/xx/1985", "นักเรียน", "ลี้ภัย",
"ยังไม่ได้แต่งงาน", "ไม่ได้หลังจากการเลิกราหลายครั้ง" } };
jtable2 = JTable ใหม่ (rowData, columnNames);
jtable3 = JTable ใหม่ (rowData, columnNames);
jtable3.setPreferredScrollableViewportSize(new Dimension(600, 100));//กำหนดขนาดของตาราง
jtable3.setRowHeight(30);//กำหนดความสูงของแต่ละแถวเป็น 20
jtable3.setRowHeight(0, 20);//กำหนดความสูงของแถวที่ 1 ถึง 15
jtable3.setRowMargin(5);//กำหนดระยะห่างระหว่างเซลล์สองแถวที่อยู่ติดกัน
jtable3.setRowSelectionAllowed(true); // ตั้งค่าว่าจะสามารถเลือกได้หรือไม่
jtable3.setSelectionBackground(Color.white);//กำหนดสีพื้นหลังของแถวที่เลือก
jtable3.setSelectionForeground(Color.red);//ตั้งค่าสีพื้นหน้าของแถวที่เลือก
jtable3.setGridColor(Color.red);//กำหนดสีของเส้นตาราง
jtable3.selectAll();//เลือกทุกแถว
jtable3.setRowSelectionInterval(0, 2);//ตั้งค่าแถวการเลือกเริ่มต้น ที่นี่แถว 1 ถึง 3 ทั้งหมดอยู่ในสถานะที่เลือก
jtable3.clearSelection();//ยกเลิกการเลือก
jtable3.setDragEnabled(false); // ไม่เข้าใจสิ่งนี้
jtable3.setShowGrid(true); // ไม่ว่าจะแสดงเส้นตารางหรือไม่
jtable3.setShowHorizontalLines(true); // ไม่ว่าจะแสดงเส้นตารางแนวนอนหรือไม่
jtable3.setShowVerticalLines(true); // ไม่ว่าจะแสดงเส้นตารางแนวตั้งหรือไม่
jtable3.setValueAt("tt", 0, 0);//ตั้งค่าของเซลล์ใดเซลล์หนึ่ง ค่านี้จะเป็นอ็อบเจ็กต์
jtable3.doLayout();
jtable3.setBackground(สีสีฟ้า);
// JTable ถูกเพิ่มเข้ากับ JScrollPane ได้ดีที่สุดเพื่อให้ได้เอฟเฟกต์การเลื่อน
scrollPane1 = JScrollPane ใหม่ (jtable1);
scrollPane2 = JScrollPane ใหม่ (jtable2);
scrollPane3 = JScrollPane ใหม่ (jtable3);
แผง = JPanel ใหม่ (GridLayout ใหม่ (0, 1));
แผง. setPreferredSize (มิติใหม่ (600, 400));
แผง. setBackground (สี. สีดำ);
แผง.เพิ่ม(scrollPane1);
แผง.เพิ่ม(scrollPane2);
แผง.เพิ่ม(scrollPane3);
frame.setContentPane (แผง);
กรอบ.แพ็ค();
frame.setVisible(จริง);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
โมฆะคงที่สาธารณะ main (String [] args) {
ใหม่ JTableDemo3();
-
-
ภาพหน้าจอที่ 2:
สอง: ต้นไม้ (JTree):
1.แนวคิดพื้นฐาน:
ทรี (JTree): ตัวควบคุมที่แสดงชุดข้อมูลแบบลำดับชั้นเป็นโครงร่าง
2. วิธีการก่อสร้างที่ใช้กันทั่วไป:
JTree(): ส่งกลับ JTree พร้อมกับโมเดลตัวอย่าง
JTree(Object[] value): ส่งกลับ JTree ที่ระบุแต่ละองค์ประกอบของอาร์เรย์เป็นโหนดลูกของโหนดรูทใหม่ที่ไม่แสดง
//เฉพาะตัวสร้างนี้เท่านั้นที่สามารถสร้างโหนดรูทได้หลายโหนด
JTree(Object[] value): ส่งกลับ JTree ที่ระบุแต่ละองค์ประกอบของอาร์เรย์เป็นโหนดลูกของโหนดรูทใหม่ที่ไม่แสดง
JTree(TreeNode root): ส่งคืน JTree โดยมี TreeNode ที่ระบุเป็น root ซึ่งจะแสดงโหนดราก
JTree(TreeNode root, boolean asksAllowsChildren): ส่งคืน JTree โดยมี TreeNode ที่ระบุเป็นรูท
โดยจะแสดงโหนดรูทในลักษณะที่ระบุและกำหนดว่าโหนดนั้นเป็นโหนดปลายสุดหรือไม่ (ตั้งค่าเป็นจริงเพื่อเพิ่มโหนดย่อย จากนั้นจึงเพิ่มโหนดย่อย)
3. การสาธิตรหัส:
ตัวอย่างที่ 1:
คัดลอกรหัสรหัสดังต่อไปนี้:
JTreeDemo1 คลาสสาธารณะ {
เจเฟรมฉ;
กล่องกล่อง;
เจทรี jTree1,jTree2;
JTreeDemo1 สาธารณะ ()
-
f = ใหม่ JFrame(" JTreeDemo1 ");
box = Box.createHorizontalBox(); //สร้างออบเจ็กต์คลาส Box
jTree1 = JTree ใหม่ ();
jTree2 = JTree ใหม่ ();
//เพิ่มคีย์/ค่าที่กำหนดเองให้กับองค์ประกอบนี้
jTree1.putClientProperty("JTree.lineStyle", "มุม");
//เพิ่มแผงเลื่อนลงในคอนเทนเนอร์ Box
box.add(JScrollPane ใหม่(jTree1), BorderLayout.WEST);
box.add (JScrollPane ใหม่ (jTree2), BorderLayout.EAST);
f.getContentPane().add(กล่อง, BorderLayout.CENTER);
f.setSize(300, 240);
//f.แพ็ค();
f.setLocation(300, 200);
f.setVisible(จริง);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
โมฆะคงที่สาธารณะ main (String [] args) {
ใหม่ JTreeDemo1();
-
-
ภาพหน้าจอที่ 1:
ตัวอย่างที่ 2:
คัดลอกรหัสรหัสดังต่อไปนี้:
JTreeDemo2 คลาสสาธารณะ {
เจเฟรมฉ;
เจพาเนลพี;
JTree jTree1,jTree2,jTree3,jTree4,jTree5,jTree6,jTree7;
JTreeDemo2 สาธารณะ () {
f = ใหม่ JFrame(" JTreeDemo2 ");
// ตัวสร้าง: JTree()
jTree1 = JTree ใหม่ ();
// ตัวสร้าง: JTree (ค่าวัตถุ [])
วัตถุ[] ตัวอักษร = { " a ", " b ", " c ", " d ", " e " };
jTree2 = JTree ใหม่ (ตัวอักษร);
// ตัวสร้าง: JTree (รูต TreeNode) (TreeNode ว่างเปล่า)
//สร้างต้นไม้ที่มีโหนดว่าง
DefaultMutableTreeNode node1 = ใหม่ DefaultMutableTreeNode(); // กำหนดโหนดต้นไม้
jTree3 = new JTree(node1); // ใช้ tree node เป็นพารามิเตอร์เพื่อเรียก JTree Constructor เพื่อสร้าง tree ด้วย root node
// Constructor: JTree(TreeNode root) (เหมือนข้างบน ยกเว้นว่า TreeNode ไม่ว่างเปล่า)
// สร้างแผนผังด้วยโหนดรูท
DefaultMutableTreeNode node2 = ใหม่ DefaultMutableTreeNode(" Color ");
jTree4 = new JTree(node2); // ไม่สามารถใส่สีให้กับโหนดได้ ค่าเริ่มต้นจะเป็นสีขาวและมีข้อความสีดำ
jTree4.setBackground(Color.lightGray);
// ตัวสร้าง: JTree (TreeNode root, boolean
// asksAllowsChildren) (เหมือนข้างบน แต่ TreeNode ต่างกัน)
// ใช้คลาส DefaultMutableTreeNode เพื่อสร้างแผนผังที่มีโหนดรูทก่อน ตั้งค่าให้เพิ่มโหนดลูก จากนั้นจึงเพิ่มโหนดลูก
DefaultMutableTreeNode color = ใหม่ DefaultMutableTreeNode(" Color ",
จริง);
DefaultMutableTreeNode สีเทา = ใหม่ DefaultMutableTreeNode(" สีเทา ");
grey.add(DefaultMutableTreeNode(" Lightgray ") ใหม่);
grey.add(DefaultMutableTreeNode(" Darkgray ") ใหม่);
color.add(สีเทา);
color.add(DefaultMutableTreeNode(" Red ") ใหม่);
color.add(DefaultMutableTreeNode(" Green ") ใหม่);
jTree5 = JTree ใหม่ (สี);
// Constructor: JTree(TreeNode root) (เหมือนข้างบน ยกเว้นว่า TreeNode ไม่ว่างเปล่า)
// สร้างแผนผังโดยเพิ่มโหนดทีละรายการ
ชีววิทยา DefaultMutableTreeNode = ใหม่ DefaultMutableTreeNode(" ชีววิทยา ");
สัตว์ DefaultMutableTreeNode = ใหม่ DefaultMutableTreeNode(" สัตว์ ");
DefaultMutableTreeNode เลี้ยงลูกด้วยนม = ใหม่ DefaultMutableTreeNode(" Mammal ");
ม้า DefaultMutableTreeNode = ใหม่ DefaultMutableTreeNode(" ม้า ");
Mammal.add(ม้า);
animal.add(สัตว์เลี้ยงลูกด้วยนม);
ชีววิทยา.เพิ่ม(สัตว์);
jTree6 = JTree ใหม่ (ชีววิทยา);
ม้า.isLeaf();
ม้า.isRoot();
// ตัวสร้าง: JTree (TreeModel newModel)
// ใช้คลาส DefaultMutableTreeNodel เพื่อกำหนดโหนด จากนั้นใช้โหนดนี้เป็นพารามิเตอร์เพื่อกำหนดโหนดโดยใช้ DefaultTreeMode
// สร้างโมเดลต้นไม้ จากนั้นใช้ตัวสร้าง JTree เพื่อสร้างต้นไม้
DefaultMutableTreeNode root = ใหม่ DefaultMutableTreeNode(" Root1 ");
DefaultMutableTreeNode child1 = ใหม่ DefaultMutableTreeNode(" Child1 ");
DefaultMutableTreeNode child11 = ใหม่ DefaultMutableTreeNode(" Child11 ");
DefaultMutableTreeNode child111 = ใหม่ DefaultMutableTreeNode(
" เด็ก111 ");
root.add(ลูก1);
เด็ก1.เพิ่ม(เด็ก11);
เด็ก11.เพิ่ม(เด็ก111);
โมเดล DefaultTreeModel = DefaultTreeModel ใหม่ (รูท);
jTree7 = JTree ใหม่ (รุ่น);
p = JPanel ใหม่();
p.setLayout(BoxLayout ใหม่(p, BoxLayout.X_AXIS));
p.setPreferredSize(มิติใหม่(700, 400));
// ต้องวาง JTree บน JScrollPane
p.add(JScrollPane ใหม่(jTree1));
p.add(JScrollPane ใหม่(jTree2));
p.add(JScrollPane ใหม่(jTree3));
p.add(JScrollPane ใหม่(jTree4));
p.add(JScrollPane ใหม่(jTree5));
p.add(JScrollPane ใหม่(jTree6));
p.add(JScrollPane ใหม่(jTree7));
f.setContentPane(p);
f.แพ็ค();
f.setLocation(300, 200);
f.setVisible(จริง);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
โมฆะคงที่สาธารณะ main (String [] args) {
JTreeDemo2 ใหม่();
-
-
ภาพหน้าจอที่ 2: