תכנות מתקדם ב-Java/ממשק גרפי: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Yift.shl (שיחה | תרומות)
שורה 95:
 
public static void main (String[]args)
{
 
App app=new App();
 
שורה 102:
}
</source>
====הסבר לתוכנית:====
יבאנו את הספריה הגרפית (ע"י import). הצהרנו על המחלקה App, שבה הצהרנו על עצם f, מיכל מסוג Frame. המחרוזת שהועברה לקונסטרקטור של העצם היא תווית הזיהוי שתתנוסס מעל החלון: first application.
בקונסטרקטור של המחלקה עצמה הצהרנו בהתחלה על צורת ההכנסה של הרכיבים לתוך החלון ע"י שימוש ב setLayout, כך:
<source lang = "java">
f.setLayout(new flowLayout());
</source>
קיימים מספר סוגים של סידורים אוטומטיים של החלון:
 
 
'''FlowLayout''' - היא אחת מהאפשרויות לסידור הרכיבים במיכל. הרכיבים יונחו לפי הסדר משמאל לימין.
 
'''BorderLayout''' - ברירת המחדל לחלון, הרכיבים יונחו לפי סדר "גאוגרפי": צפון (למעלה),דרום (למטה), מזרח (ימין), מערב (שמאל), מרכז.
 
'''GridLayout''' - המסגרת תחולק לשורות וטורים.
 
דוגמה:
<source lang = "java">
f.setLayout(new GridLayout(2,0));
</source>
הסבר: קבענו את מספר השורות ל - 2 ומספר העמודות ל - 0, כלומר הרכיבים יסודרו בשתי שורות, ומספר העמודות יקבע עפ"י מספר הרכיבים. בהמשך נראה פונקציות שבעזרתן ניתן לקבוע גם מיקום מדויק של עצם בחלון ולא ע"פ סידור אוטומטי.
בנוסף, הגדרנו שני כפתורים:
 
<source lang="java">
Button b1 = new Button ("button1");
Button b2 = new Button ("button2");
</source>
המחרוזת שבהגדרת הכפתור היא התווית שתכתב עליו.
אחרי הגדרת 2 הכפתורים הוספנו אותם לחלון עצמו ע"י שימוש בפונקציה add:
 
<source lang="java">
f.add(b1);
f.add(b2);
</source>
סיימנו את יצירת החלון, שבו יהיו 2 כפתורים. נשאר לנו רק לגרום לחלון להופיע ואת זה נעשה ע"י פקודת setVisible כך:
 
<source lang = "java">
f.setVisible(true);
</source>
עכשיו כל יצירת עצם מסוג App תיצור אוטומטית חלון ובו 2 כפתורים על המסך, וזה בדיוק מה שעשינו בפונקציה הראשית של המחלקה (main) - יצרנו מופע שלה.
עדיין לא הגדרנו שום פעולה שתעשה ע"י הכפתורים שהגדרנו, כך שהם בעצם "חופשיים".
 
==רכיבים - components==
קיימים מספר סוגים של רכיבים שכיחים:
====כפתור - Button====
כפתור, שלחיצה עליו תיצור ארוע. ניתן לתת לכפתור ערך אמת או שקר: בערך שקר הכפתור יהיה לא פעיל, ויהיה אפשר בשלב כלשהו להפעיל אותו. נראה את הקוד שלו, כפי שכתבנו בתוכנית, ונוסיף "ניטרול" של אחד הכפתורים:
<source lang = "java">
Button b1 = new Button ("button1");
Button b2 = new Button ("button2");
b1.setEnabled(false);
f.add(b1);
f.add(b2);
</source>
יצרנו שני כפתורים, את השני הפכנו לכפתור לא פעיל, והוספנו אותם למסגרת f.
 
====תווית - Label====
תוית תשמש לכתיבת טקסט שאינו משתנה בחלון. בקונסטרקטור של התוית יופיע הטקסט הרצוי בתוית. נוסיף גם תוית לתוכנית:
<source lang = "java">
Label l = new Label ("my first label");
f.add(l);
</source>
הוספנו לחלון תוית, שעליה יהיה כתוב my first label.
 
====רכיבי טקסט - text components====
קיימים שני סוגי רכיבי טקסט בסיסיים: שדה טקסט, TextField, שבו ניתן למשתמש לכתוב שורת טקסט אחת אחרי שהחלון כבר הופעל, ואזור טקסט, TextArea, שבו ניתן למשתמש לכתוב כמה שורות טקסט בחלון.
נוסיף רכיבים כאלה לתוכנית:
 
<source lang = "java">
TextField tf = new TextField (20);
TextArea ta = new TextArea (10, 20);
f.add(tf);
f.add(ta);
</source>
הוספנו שדה טקסט באורך 20 תוים, ואזור טקסט בגודל 10 שורות ובאורך 20 תוים.
 
====תיבת סימון - checkbox====
תיבה שאפשר לסמן בה בחירות שונות. אפשר ליצור תיבות בודדות, או ליצור כמה תיבות שיושבות בתוך "קבוצת תיבות", CheckboxGroup, כך שרק אחת מכל הקבוצה תוכל להיות מסומנת בזמן נתון.
נוסיף רכיבים לתוכנית:
 
<source lang = "java">
 
{{תכנות מתקדם ב-Java|מוגבל}}
 
[[קטגוריה:תכנות מתקדם ב-Java|ממשק גרפי]]