עבור לתוכן

בעיה בג'אווה - שינוי שם של רכיב בcomboBox

Featured Replies

פורסם

ערב טוב

יש לי קומבובוקס המכיל אובייקטים מסוג צבע.

כל רכיב מופיע כקוד הצבע שלו. לדוגמה לבן מופיע כ

java.awt.Color[r=255,g=255,b=255]

יש דרך לשנות את הטקסט שמופיע כך שבמקום הקוד יופיע פשוט

white

?

בתודה מראש

פורסם

ברור. במקום לשים בתוך ה-comboBox את הצבעים עצמם, תגדיר אובייקט חדש ש"עוטף" את הצבע, ותדאג שפונקציית ה-ToString שלו תחזיר מה שאתה רוצה.

פורסם
  • מחבר

זה עדיין לא ממש ברור לי

תוכל לצרף דוגמה קצרה?

פורסם

לכל מחלקה בג'אווה יש פונקציה בשם toString, שמחזירה ייצוג של האובייקט כמחרוזת.

ה-comboBox מציג ברשימה את ה-toString של כל האובייקטים שבו.

עבור המחלקה java.awt.Color, הפונקציה toString מחזירה את המחרוזת שנראית ככה, ולכן זה מה שאתה רואה.

על מנת להציג איזו מחרוזת שאתה רוצה, אתה צריך להגדיר בעצמך מחלקה שתעטוף את ה-java.awt.Color (או תירש ממנו), ותדרוך על הפונקציה toString שלו באופן מתאים. כלומר, הפונקציה יכולה לבדוק - אם הצבע שווה ל-java.awt.Color.white אז היא תחזיר "white", אם הוא שווה ל-java.awt.Color.red אז היא תחזיר "red" וכו'. אפשר לשמור את המיפויים המתאימים בין צבע למחרוזת באמצעות HashMap וככה לחסוך עבודה.

דרך קצת יותר חכמה לעשות את זה היא באמצעות Enum, אם אתה מכיר את הנושא.

פורסם
  • מחבר

מצטער, זה עדיין לא ברור לי.

אני יודע איך ליצור Enum אבל איך אני משתמש בו לעניין הזה?

אני הרי לא יכול להכניס את השדות של ה Enum לקומבובוקס.

פורסם
  • מחבר

בסוף באמת הצלחתי עם אינם.

תודה

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים