Slide 1

מסמכים קשורים
11_2009_gui

PowerPoint Presentation

תוכנה 1 תרגול מספר 12: GUI כתיבת מחלקות גנריות בית הספר למדעי המחשב אוניברסיטת תל אביב 1

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

Microsoft PowerPoint - lec10.ppt

אוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד

Slide 1

Slide 1

מבחן בפיתוח מערכות תוכנה בשפת Java ( )

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ

סרגל כלים ל-Outlook או לExplorer- מדריך למשתמש

מבוא למדעי המחשב

תוכנה חופשית מאחורי הקלעים? על סדר היום: קצת על עצמי מה זאת תוכנה חופשית? ההיסטוריה של תוכנה חופשית כיצד תוכנה חופשית משתלבת בשוק התוכנה היתרונות של ת

מבוא לתכנות ב- JAVA תרגול 7

מבוא לתכנות ב- JAVA תרגול 11

PowerPoint Presentation

מבוא למדעי המחשב

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

HTML - Hipper Text Makeup Language

PowerPoint Presentation

מבוא למדעי המחשב

שאלהIgal : מערכים דו מימדיים רקורסיה:

הנחיות הורדה ותפעול לספרים דיגיטלים. הוצאת כנרת, זמורה ביתן שמחה להגיש לכם, התלמידים, ספר דיגיטלי. הספרים עצמם הינם בקבצי PDF הניתנים להורדה ללא עלות

מבוא למדעי המחשב

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

PowerPoint Presentation

מהוא לתכנות ב- JAVA מעבדה 3

המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return +

תרגול 1

תורת הקומפילציה

ייבוא וייצוא של קבצי אקסל וטקסט

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

מבוא למדעי המחשב

Slide 1

Slide 1

שאלהIgal : מערכים דו מימדיים רקורסיה:

תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

Microsoft PowerPoint - rec3.ppt

Microsoft Word - c_SimA_MoedB2005.doc

Microsoft Word - Ass1Bgu2019b_java docx

PowerPoint Presentation

תוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגש

סדנת תכנות ב C/C++

מחירים מיוחדים לחודשים מאי-יוני XBOX ONE 1TB + 1, X 6 ת ש HDMI שלט אלחוטי כבל XBOX ONE 1TB משחק מלחמה: Tom Clancy the Division מתנה בשווי

PowerPoint Presentation

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

1

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

Microsoft PowerPoint - rec1.ppt

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

Slide 1

Tutorial 11

PowerPoint Presentation

מצגת של PowerPoint

הגשה תוך שבוע בשעת התרגול

פ רק כה ) פ ס וק ים ז-יא( ז ו א ל ה י מ י ש נ י ח י י א ב ר ה ם א ש ר ח י: מ א ת ש נ ה ו ש ב ע ים ש נ ה ו ח מ ש ש נ ים. ח ו י ג ו ע ו י מ ת א ב ר ה ם

תכנות מונחה עצמים א' – תש"ע

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

Microsoft Word B

שאלהIgal : מערכים דו מימדיים רקורסיה:

סדנת חזון משאבי אנוש

מבוא למדעי המחשב

PowerPoint Presentation

Microsoft PowerPoint - meli-iso.ppt

ביה"ס היסודי ע"ש יצחק רבין, נשר

סיכום הוראות Touch touchend יקרא לפונקציה כשיסתיים המגע עם הסמארטפון. - touchmove יקרא לפונקציה במהלך תזוזת המגע עם הסמארטפון. touchstart יקרא לפונקצי

מבוא למדעי המחשב

Microsoft PowerPoint - 10_threads.ppt

Microsoft PowerPoint - lec2.ppt

מקביליות

תרגול 1

ת'' מדריך לבעלי תיבה קיימת במופ ומשתמשים ב Outlook 2003 או doc.2007 לפני שניגש להגדיר את תיבת המייל החדשה, נבצע גיבויי של המיילים ופנקס הכתובות מהחשבו

PowerPoint Presentation

PowerPoint Presentation

מסע מדע ו - מסע ברכב שטח ביבשות רחוקות

מדריך למרצים ומתרגלים 1

PowerPoint Presentation

מקביליות

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

SFP6603NRE Dolce Stil Novo תנור פירוליטי 60 ס"מ, זכוכית שחורה +A דרגת אנרגיה EAN13: רכיבים בגימור נחושת פונקציות בישול 10 פונקציות ניקוי

מדריך לחיפוש במאגר JCR Journal Citation Reports מעודכן לדצמבר 2015 כל הזכויות שמורות לתחום היעץ, אוניברסיטת חיפה, הספריה

תרגיל 5-1

המינהל למדע וטכנולוגיה הפיקוח על מדעי המחשב עתודה מדעית טכנולוגית מדינת ישראל משרד החינוך המינהל הפדגוגי אגף בכיר בחינות בחינת מפמ ר במדעי המחשב לכיתה

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

אגף כלכלה תקציב ומסחר

PowerPoint Presentation

Microsoft PowerPoint - Lecture1

מדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אי

איטרטורים: 1 תוכנה 1 סתיו תשע"ג תרגיל מספר 9 הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה moodl

בארץ אחרת

תוכנה 1 אביב תשע"ח תרגיל מספר 8 אוספים גנריים ו- framework collection הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת ה

פקולטה לחינוך מנהל סטודנטים Beit Berl College الكلية االكاديمية بيت بيرل 20/06/2016 י"ד/סיון/תשע"ו ייעוץ וירטואלי הרכבת מערכת )רישום לקורסים( באמצעות

פרויקט שורשים דמות

תמליל:

פיתוח מ ע רכו ת תוכנה MVC אוהד ברזילי ohadbr@mta.ac.il המכל לה האקדמית תל אביב יפו

MVC Model View Controller Design Pattern (MVC) רעיון ההפרדה בין מודל לתצוגה אינו ייחודי רק ל GUI לדוגמא: מה תדפיס השורה: Date()); System.out.println(new איך מיוצגת המחלקה Date בזיכרון? נדון בנושא בכמה הקשרים: עיצוב ספריות GUI רמות הפשטה שונות של רכיבי GUI Builder Design Pattern CSS / HTML שפות וסביבות מבוססות MVC 2

הפ רד ה בין מודל והצג ה המודל (הנתונים והלוגיקה של התוכנית) אמור להיות אדיש לשינויים בהצגה (ואולי לאפשר ריבוי הצגות במקביל) ספריות GUI רבות נכתבו מתוך הבנת חשיבות ההפרדה 3

חזרה על העקרו נות המרכזיים ספ ריות GUI

הנדסת מנשקי אנוש אינטואיטיביות המ ש תמש/ת בש ליטה, יעילות של המש תמש, לא המחשב לא ש ל המחשב התאמה לתכיפות השימוש ולל ימוד התוכנה שיהיה יפה 5

עיצוב מנשקים קונסיסטנטיות קונטרסט ארגון ברור של המסך כיוון וסדר ברורים העיצוב צריך להתאים את עצמו לסביבה 6

שלושת הצירים של תוכנה גר פ ית אלמנטים מסוגים שונים על המסך (היררכיה של טיפוסים) הארגון הדו מימדי של האלמנטים, בדרך כלל בעזרת מיכלים וסדרנים ההתנהגות הדינמית של האלמנטים בתגובה לפעולות של המשתמש/ת ("ארועים": הקלדה, הקלקה, גרירה). לרוב ע"י מימוש תבנית ה Observer (נקרא בדרך כלל (Listener 7

ספ ריות Java גר פי ות ב כחלק מהספרייה הסטנדרטית מכילה הפצת Java את החבילה java.awt המספקת שרותי GUI בסיסיים: Abstract Windowing Toolkit בעיית המכנה המשותף הנמוך ביותר יעיל, יביל, מכוער בגרסאות מאוחרות של Java התווספה ספריית javax.swing המספקת שרותי GUI מתקדמים: JFC/Swing Look & Feel עשיר, איטי, כבד, מכוער (שנוי במחלוקת) ספריית SWT של IBM מנסה לרקוד על שתי החתונות גם יפה גם אופה המנשק הגרפי של Eclipse מבוסס SWT אינו סטנדרטי (יש להוריד כ zip נפרד) 8

Look and Feel (למשל, Windows ו- MacOS ; אבל לא לינוקס ויוניקס) מערכות הפעלה עם מנשק גראפי מספקות שירותי מנשק שימוש במנשקים של מערכת ההפעלה תורם למראה אחיד ולקונסיסטנטיות עם ציפיות המשתמש ועם קביעת התצורה שלו ) אם יש דרך לשלוט על מראה הרכיבים, כמו בחלונות) ספריות מנשקים משתמשות באחת משתי דרכים על מנת להשיג אחידות עם המנשקים של מערכת ההפעלה שימוש ישיר ברכיבי מנשק של מערכת ההפעלה; SWT,AWT אמולציה של התנהגות מערכת ההפעלה אבל כמעט ללא שימוש ברכיבי המנשק שלה (פרט לחלונות); למשל ;Qt,JFace,Swing זה מאפשר להחליף מראה, pluggable look & feel 9

אלג וריתמי אריזה ב SWT רכיבים ב שורה/עמודה, גודל אח יד לכולם :FillLayout רכיבים בשורה/עמודה, עם אפשרות שבירה למספר ועם יכולת לקבוע רוחב/גובה לרכיבים :RowLayout שורות/עמודות, :GridLayout כפי שראינו, סריג שניתן לקבוע בו איזה שורות ועמודות ימתחו ואיזה לא, ולקבוע רוחב/גובה לרכיבים :FormLayout מיקום בעזרת אילוצים על ארבעת הקצוות (או חלקם) של הרכיבים; אילוצים יחסיים או אבסולוטיים ביחס למיכל (למשל, באמצע רוחבו ועוד 4 פיקסלים) או אילוצים אבסולוטיים ביחס לנקודת קצה של רכיב אחר (דבוק לרכיב אחר או דבוק עם הפרדה של מספר פיקסלים נתון) :StackLayout ערימה של מיכלים בגודל זהה אבל רק העליון נראה; שימושי להחלפה של תוכן מיכל או חלון 10

הרכבה של Composites כדי לבנות בצורה מודולרית מסכים מורכבים (ולפתח כל איזור בנפרד) רצוי להשתמש במחלקה Composite (מקבילה למחלקה (Swing/AWT ב- J/Panel בדוגמא שלפנינו ה Shell מכיל 3 Composites שונים, כל אחד מהם מנוהל ע"י מנהל פריסה משלו 11

עשה זאת בעצמך ניתן לצייר על רכיבי GUI (להב דיל מלהוסיף ר כיבים מוכנ ים) כדי שהציור ישמור על עיקביותו גם לאחר ארועי חשיפה (שינוי גודל החלון, הסתרת/מזעור החלון ע"י חלונות אחרים) יש לדאוג לציור מחדש לאחר כל ארוע כזה לשם כ ך נ כתוב את פונקצית הציור כשג רת הטיפול ב ארועי ציור השגרה מקבלת כארגומנט ארוע ציור PaintEvent אשר ניתן לחלץ ממנו הפנייה להקשר הגרפי Context) (GC Graphics 12

עשה זאת בעצמך (SWT) נצייר על GC ע"י שימוש בשרות drawxxx הכולל את (רשימה חלקית): void drawarc(int x, int y, int width, int height, int startangle, int arcangle) void drawfocus(int x, int y, int width, int height) void drawimage(image image, int x, int y) void drawline(int x1, int y1, int x2, int y2) void drawoval(int x, int y, int width, int height) void drawpath(path path) void drawpoint(int x, int y) void drawpolygon(int[] pointarray) void drawrectangle(int x, int y, int width, int height) void drawroundrectangle(int x, int y, int width, int height, int arcwidth, int archeight) void drawstring(string string, int x, int y) void drawtext(string string, int x, int y) 13

2 חלו פ ות איך נתכנן משחק שח גרפי? עשה זא ת בע צמ ך: ציור של משבצות שחור-לבן לכידה של ארועי לחיצה על העכבר שימוש ב :widgets בניית סריג של כפתורים ריבועיים בצבעי שחור ולבן לסרוגין לכידה של ארועי בחירת כפתור מה היתרונות והחסרונות ש ל כל אחת מהגישות? 14

רכיבים המפ רידים בין מודל ו תצוגה חלק מספריות ה רכיבים ייעודיים GUI מספקות הפרד ה בין מודל ותצוגה ג ם ע"י דוגמא: Java Beans הן מחלקות Java רגילות אשר יודעות לדווח ל"עולם" על ארועים שונים event) (fire דוגמא נוספת: טבלה המצוירת על המסך מכילה מחרוזות ואולם בעצם היא מתארת עצם סמנטי שזהו רק הייצוג שלו היה נחמד לו ניתן היה להציג בצורה אוטומטית Map בתור טבלה ויזואלית 15

JFace Viewers החבילה JFace מציעה מגוון מחלקות המציעות שרותי GUI מתקדמים הכתובים מעל (בעזרת) הספריה SWT אחת המשפחות בחבילה מכילה הצגות למבני נתונים שימושיים כגון: ListViewer, CheckboxTableViewer, CheckboxTreeViewer, TableTreeViewer, TableViewer, TreeViewer למשל, אם ברצוננו להציג למשתמש רשימה של ספרים נרצה לקשור בין רשימת הספרים (עצמים מטיפוס (Book ובין רכיב הרשימה הויזואלית לצורך כך יש להגדיר לרשימת הספרים: LabelProvider ו- (Swing בספרית Renderer) StructuredContentProvider 16

JFace Dialogs בחבילה JFace ניתן גם למצוא מגוון תיבות דו-שי ח לתקשורת עם המ ש תמש: MessageDialog.openWarning(shell, "Title", "Warning message"); 17

JFace Dialogs String[] buttontext = new String[] { "Button1", "Button2", "Button3" }; MessageDialog messagebox; = new MessageDialog(shell, "Title", null, "Message", MessageDialog.ERROR, buttontext, 1); messagebox.open(); ניתן להגדיר מספר סוגי תיבות דו-שיח: MessageDialog.NONE, MessageDialog.ERROR, MessageDialog.INFORMATION, MessageDialog.QUESTION, MessageDialog.WARNING messagebox.getreturncode(); ק ריאת בחירת המשתמ ש ע"י: 18

JFace Dialogs InputDialog inputbox = new InputDialog(shell, "Title", "Message", "Initial Value", null); inputbox.open(); inputbox.getreturncode(); inputbox.getvalue(); קריאת קלט משתמש ע"י: 19

JFace Dialogs ColorDialog d = new ColorDialog(shell); RGB selection = d.open(); FileDialog dialog = new FileDialog (shell, SWT.OPEN); dialog.settext ("Open an image file or cancel"); String string = dialog.open (); 20

המודל של ה View לפעמים עצמה (בדר"כ) גם לתצוגה יש מודל פנימי משל כאשר אנו מחליפים טכנולוגיה אנו משכפלים מודל ז ה ש לא לצורך תבנית העיצוב Builder נותנת אפשרות להבעה מפורשת של המודל הפנימי לדוגמא: איך נתכנן את תפריטי הבחירה הבאים: 21

Builder Example abstract class Builder { public abstract void addpart(string choicestr); public abstract void addseparator(); public abstract Component getresult(); } class ComboBuilder extends Builder { private JComboBox combo = new JComboBox(); public void addpart(string choicestr){ combo.additem(choicestr); } public void addseparator(){ combo.additem("--------"); } } public Component getresult(){ // Return the Complex object return combo; } 22

class RadioButtonBuilder Builder Example extends - cont d Builder { private Box panel = Box.createVerticalBox(); private ButtonGroup group = new ButtonGroup(); public void addpart(string choicestr){ JRadioButton bt = new JRadioButton(choiceStr); group.add(bt); panel.add(bt); } public void addseparator(){ panel.add(new JSeparator()); } } public Component getresult(){ // Return the Complex object // select first radio button ((JRadioButton)group.getElements().nextElement()).setSelected(true); return panel; } 23

class ListDirector Builder { Example - cont d } public Component create(builder builder, String[] choicestrings){ for(int i=0; i<choicestrings.length; i++){ String s = choicestrings[i]; if (s==null) builder.addseparator(); else builder.addpart(s); } return builder.getresult(); } Usage: ListDirector director = new ListDirector(); String[] choicestrings = { "black", "white", null, "red", "green", "blue" }; Component comp = director.create( new RadioButtonBuilder(), choicestrings); Component comp2 = director.create( new ComboBuilder(), choicestrings); 24

MVC ו- HTML רעיון ההפרדה בין מודל ותצוגה חלחל גם לתוך תקן ה HTML לעי צוב עמודי אינטרנט תגיות HTML הן בחלקן סמנטיות (<h1>,<p>) ובחלקן עיצוביות (<font>,<b>) יצירת עיצוב אחיד לע מוד או לאתר מצריכה מע בר על כל התגיות 25

CSS בעזרת תקן ה (CSS) Cascading Style Sheet ניתן להחיל עיצוב חדש על עמודים קיימים ללא שינוי ה HTML ניתן להג דיר מספר עיצובים עבור אותו עמוד שיוחלו מן הכ לל אל הפרט למשל עיצוב של עמוד מסוים באתר גדול http://www.csszengarden.com/ XML מסוגל לע צב גם ע ם מסמכי CSS 26

MVC Frameworks קיימות שפות תכנות וסביבות פיתוח אשר MVC מהווה מרכיב מרכזי בהן: Ruby on Rails MFC Struts לדוגמא: פרוייקטים ב Ruby on Rails נוצרים אוטומטית עם תיקיות נפרדות ל Views, models ו- controllers 27