ה
DefaultTableModel
הכיתה היא תת-משנה של
מודל מופשט
. כפי שהשם מרמז זה מודל הטבלה שמשמש את א
כאשר אף מתכנת לא מוגדר באופן ספציפי מודל טבלה. ה- DefaultTableModel מאחסן את הנתונים עבור ה- JTable בתוך
וקטור
של
וקטורים
.
למרות ש
וקטור
הוא אוסף Java מדור קודם הוא עדיין נתמך ואין שום בעיה להשתמש בו אלא אם כן התקורה הנוספת הנגרמת על ידי שימוש באוסף מסונכרן מהווה בעיה ביישום ה- Java שלך.
היתרון בשימוש ב-
DefaultTableModel
על פי מנהג
מודל מופשט
האם אינך צריך לקוד את השיטות כמו להוסיף, להוסיף או למחוק שורות ועמודות. הם כבר קיימים כדי לשנות את הנתונים המוחזקים ב-
וקטור
של
וקטורים.
זה הופך אותו למודל שולחן מהיר וקל ליישום.
הצהרת יבוא
יבוא javax.swing.table. DefaultTableModel;
בנאים
ה
DefaultTableModel
בכיתה יש שישה
. כל אחד מהם יכול לשמש כדי לאכלס את
DefaultTableModel
בדרכים שונות.
הקבלן הראשון לא מתווכח ויוצר א
DefaultTableModel
ללא נתונים, אפס עמודות ואפס שורות:
DefaultTableModel defTableModel = DefaultTableModel ();
ניתן להשתמש בבנאי הבא כדי לציין את מספר השורות והעמודות של א
DefaultTableModel
ללא נתונים:
DefaultTableModel defTableModel = DefaultTableModel (10, 10);
ישנם שני קונסטרקטורים שניתן להשתמש בהם כדי ליצור
DefaultTableModel
עם שמות עמודות ומספר שורות מוגדר (כולם מכילים ערכי null). אחד משתמש ב-
חפץ
מערך להחזיק את שמות העמודות, השני א
וקטור
:
או
DefaultTableModel defTableModel = DefaultTableModel (שמות עמודות, 10);
לבסוף ישנם שני קונסטרקטורים המשמשים לאוכלוסיה
DefaultTableModel
עם נתוני שורה יחד עם שמות עמודות. אחד משומש
חפץ
מערכים, האחר
וקטורים
:
או
שיטות שימושיות
כדי להוסיף שורה ל-
DefaultTableModel
להשתמש ב
להוסיף שורה
שיטה יחד עם נתוני השורה להוסיף:
כדי להוסיף שורה השתמש ב-
insertRow
שיטה, ציון אינדקס השורה להכנס ונתוני השורה:
כדי למחוק שורה השתמש בסמל
להסיר
שיטת ציון אינדקס השורה למחיקה:
defTableModel.removeRow (0);
כדי לקבל ערך בתא טבלה השתמש ב-
getValueAt
שיטה. לדוגמה, אם הנתונים בשורה 2, עמודה 2 מכילה int:
ערך int = tabModel.getValueAt (2, 2);
להגדרת ערך בתא טבלה
setValueAt
שיטה עם הערך שיש לקבוע יחד עם אינדקס השורה והעמודה:
defTableModel.setValueAt (8888, 3, 2);
טיפים לשימוש
אם
JTable
נוצר באמצעות הקונסטרוקטור המועבר למערך דו מימדי המכיל את נתוני השורות ומערך המכיל את שמות העמודות:
אז צוות השחקנים הבא לא יעבוד:
זמן ריצה
ClassCastException
יושלך מכיוון שבמקרה זה
DefaultTableModel
מוכרז כ
בתוך ה
JTable
חפץ ולא ניתן ללהק. ניתן להטיל אותו רק אל
TableModel
ממשק. דרך לעקוף זאת היא ליצור משלך
DefaultTableModel
ולהגדיר אותו להיות המודל של ה-
JTable
:
אז ה
DefaultTableModel
defTableModel
ניתן להשתמש כדי לתפעל את הנתונים ב-
JTable
.
לראות את ה
DefaultTableModel
בפעולה תסתכל על
.