שאלה בjava

ronen10001

New member
שאלה בjava

איך אני מעדכן Labal תוך כדי ריצה (כלומר את הטקסט שה Label מציג) ושאלה דומה לגבי Panel .
 

voguemaster

New member
תשובות

לגבי Label, או אפילו JLabel, פשוט תקרא למתודה setText. לגבי פאנל - פאנל הוא CONTAINER, הוא לא מציג טקסט או משהו כזה. הוא מכיל פקדים אחרים.. הוא עצמו לא מציג שום דבר.
 

ronen10001

New member
לא סתם שאלתי...

גם לגבי הsetText אני קורא למתודה, ו... כלום, לא משתנה הטקסט. וכן, אני יודע שPanel יורש מContainer אבל אם אני רוצה להציג את הPanel תוך כדי ריצה (כתגובה לפעולה של המשתמש, וכן, הPanel הספציפי שאני מדבר עליו מכיל אי-אילו פקדים שאני רוצה שייחשפו רק לאחר הוראה ולא תוך כדי הinit או בקונסטרקטור, וכן, יצרתי את האובייקט ברמת המחלקה) ובסה"כ אני רוצה להבין למה הוא לא מגיב למתודה show או לחילופין setVisible מתוך פונקציה בתוכנית. תודה.
 

voguemaster

New member
זה מאוד תלוי באיך כתבת את הקוד

באופן עקרוני, סתם לקרוא למתודה setVisible לא תמיד יעזור לך. הכל תלוי מה מוצג באותו מקום ב-layout. לכן המציאו את cardLayout שפותר את הבעיה הזו. בכל אופן, אם כל הפקדים נמצאים בתוך הפאנל ואתה רוצה להציג אותו בתגובה לאירוע מהמשתמש, או שתשתמש ב-cardLayout או שתבצע שינוי דינמי של ה-GUI וזה כבר יותר מסובך ומעצבן.
 

ronen10001

New member
אם מעניין אותך לדעת מה היה...

עברתי ובדקתי אחד לאחד את כל הממשקים פאנלים דפים מסגרות etc... התייאשתי, סגרתי את סביבת העבודה, אחרי 5 דקות עלה לי רעיון פתחתי את הסביבה שוב, קימפלתי והפלא ופלא, זה עבד... למה? לא יודע, איך אומרים? לא נגעתי... עכשיו זה עובד יופי, עשיתי עוד כמה שינויים, ניקיתי את זה מבאגים (K300 על המחשב
), נגמר התרגיל. שלב הבא היכרות מעמיקה עם נושא הGraphics למיניהו (2D 3D), ומשפחת הj ים... (JFrame וכיוב')
 
למעלה