הרצאה מספר: GUI components רכיבים נוספים חלק ג' צבי מלמד מכללת הדסה/מכללה חרדית כל הזכויות שמורות תכנות ג'אווה + אינטרנט JAVA & WEB PROGRAMMING

Similar documents
PROGRAMMING DESIGN USING JAVA (ITT 303) Unit 7

12/22/11. Copyright by Pearson Education, Inc. All Rights Reserved.

CS111: PROGRAMMING LANGUAGE II

Summary. Section 14.1 Introduction. Section 14.2 Java s New Nimbus Look-and-Feel. 618 Chapter 14 GUI Components: Part 1

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes

14.2 Java s New Nimbus Look-and-Feel 551 Sample GUI: The SwingSet3 Demo Application As an example of a GUI, consider Fig. 14.1, which shows the SwingS

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

Simple Web Service. namespace MyService { public class Service1 : System.Web.Services.WebService {

Dr. Hikmat A. M. AbdelJaber

הנכות 1 םוכיס לוגרת 13 1

תוכנה 1 * לא בהכרח בסדר הזה

ASP.Net Web API.

סכום (סדרת ערכים) אחרת - דוגמא: סכום-ספרות (num) אם < 10 num החזר 1 או אם = 0 = num החזר 0 public static int numofdigits (int num)

GUI Event Handlers (Part II)

מערכים שעור מס. 4 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1

משתנים שעור מס. 2 כל הזכויות שמורות דר ' דרור טובי המרכז האוניברסיטאי אריאל 1

תוכנה 1 ומחלקות פנימיות

Algorithms. Intro2CS week 5

Nir Adar

Chapter 6: Graphical User Interfaces

Contents Chapter 1 Introduction to Programming and the Java Language

הנכות 1 םוכיס לוגרת 13 1

ממשק משתמש גרפי בעזרת SWT. תוכנה 1 בשפת Java

Module 5 The Applet Class, Swings. OOC 4 th Sem, B Div Prof. Mouna M. Naravani

הקלחמ ה תמרב ת ונ וכ ת (static members ) יליזרב דהוא Java תפשב ם דקת מ תונכת ביבא ל ת תטיסרבינוא

הנכות 1 םוכיס לוגרת 14 1

מבוא למדעי המחשב תרגול 8 רשימה משורשרת כללית, Comparator

ממשק משתמש גרפי בעזרת SWT

Engineering Programming A

תוכנה 1 תרגול מספר 13

תוכנה 1 תרגול מספר 13

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

GUI Software Architecture

לתיכנות עם MATLAB Lecture 5: Boolean logic and Boolean expressions

הנכות 1 םוכיס לוגרת 13 1

Amortized Analysis, Union-Find,

תרשים המחלקות ותרשים העצמים

Chapter 12 Advanced GUIs and Graphics

CompSci 125 Lecture 17. GUI: Graphics, Check Boxes, Radio Buttons

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

Tutorial 10. Introduction to C++ שימו

גירסה

מבוא לתכנות בשפת C. Tzachi (Isaac) Rosen

תוכנה 1 סמסטר א' תשע"א

Graphical Applications

Swing. By Iqtidar Ali

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

תור שימושים בעולם התוכנה

2010 가을학기부산대학교정보컴퓨터공학부 OVERVIEW OF GUI PROGRAMMING

Communication Networks ( ) / Spring 2011 The Blavatnik School of Computer Science, Tel-Aviv University. Allon Wagner

Java פעולות עוברות בירושה סביבת יסודות מדעי המחשב נספח הורשה

תוכנה 1 * לא בהכרח בסדר הזה

תרגול 4 פונקציות. מבנה של פונקציה: public static <return value type> <function name> (<arg1 type> <arg1>, <arg2 type> <arg2>, ) { <function body> }

תרגול 12. Standard Template Library כתיבת אלגוריתמים גנריים מצביעים חכמים

תוכנה 1. תרגול מספר 11: Static vs. Dynamic Binding מחלקות מקוננות Nested Classes בית הספר למדעי המחשב אוניברסיטת תל אביב

Practical Session - Heap

Chapter 17 Creating User Interfaces

SD Module-1 Advanced JAVA

SD Module-1 Advanced JAVA. Assignment No. 4

Java GUI Design: the Basics

דף הדרכה ליצירת שרת/ לקוח עם GUI

מחרוזות ב Java ותכנות מונחה בדיקות )Test Driven Development(

GUI Program Organization. Sequential vs. Event-driven Programming. Sequential Programming. Outline

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

תרגול מס' 5: IO )קלט-פלט(

תוכנה 1 טיפוסי השפה טיפוסים לא פרימיטיביים הטיפוסים הפרימיטיביים מחרוזות המרה למספרים תרגול 2: טיפוסי שפה, מחרוזות, מערכים ושגיאות

תרגול 6 רקורסיה ותכנות מונחה עצמים

Starting Out with Java: From Control Structures Through Objects Sixth Edition

Java Foundations John Lewis Peter DePasquale Joe Chase Third Edition

הנכות 1 תואיגש םע תודדומתהו תואלול,םי : כרעמ 2 לוגרת

תוכנה 1 תרגול 2: מערכים, מבני בקרה ושגיאות

הנכות 1 תואיגש םע תודדומתהו תואלול,םיכרעמ : לו 2 גרת

10/16/2008. CSG 170 Round 5. Prof. Timothy Bickmore. User Analysis Task Analysis (6) Problem Scenarios (3)

Example Programs. COSC 3461 User Interfaces. GUI Program Organization. Outline. DemoHelloWorld.java DemoHelloWorld2.java DemoSwing.

קורס תכנות שיעור שני: שימוש במשתנים,

Introduction to Programming in C תרגול 8

ת ונכת סרוק תורשוקמ תומישר :יעישת רועיש 1

$ gcc check.c. $ a.out. $ gcc check.c -o check. $ check. $ gcc -Wall check.c -o check. #include <stdio.h>

תוכנה 1 * לא בהכרח בסדר הזה

Computer Programming A תרגול 9

ספרית התבניות הסטנדרטית (STL) כתיבת אלגוריתמים גנריים מצביעים חכמים. .vector. list iterator נכיר תחילה את האוסף הפשוט ביותר בספריה

CS 251 Intermediate Programming GUIs: Event Listeners

EVENTS, EVENT SOURCES AND LISTENERS

Computer Science 210: Data Structures. Intro to Java Graphics

תוך כדי ריצה יכולה לבוא אירוע שמפסיק את מהלך הריצה )או באופן לא רצוני כגון שיחה נכנסת או באופן רצוני על ידי זימון )pauseapp()

Control Flow: Overview CSE3461. An Example of Sequential Control. Control Flow: Revisited. Control Flow Paradigms: Reacting to the User

מצליחה. 1. int fork-bomb() 2. { 3. fork(); 4. fork() && fork() fork(); 5. fork(); printf("bla\n"); 8. return 0; 9. }

שפת XML הפכה להיות נפוצה ובעלת תפקידים רבים, במיוחד עקב גמישותה הרבה:

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

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

User Interface components with swing

- מבחן. - 4 עבודות ב- JAVA. הגשה בזוגות דרך ה- System Submission

Outline. More on the Swing API Graphics: double buffering and timers Model - View - Controller paradigm Applets

יישומונים (Applets) 2007 Zindell Technologies, Ltd. הקדמה. המגבלות על פעולותיו של ה- applet. המחלקה Applet. המחלקה Graphics.

Graphical User Interfaces 2

CSS תגיות עיצוב - Document Level style sheet. הגדרת עיצוב inline { ;ערך : תכונה ;ערך :תכונה } שם-התגית CSS תכנות בסביבת האינטרנט 1

מבוא לתכנות ב- JAVA תרגול 5. Ipc161- practical session 5

קורס גרפיקה ממוחשבת 2008 סמסטר ב' ליאור שפירא 1 חלק מהשקפים מעובדים משקפים של פרדו דוראנד, טומס פנקהאוסר ודניאל כהן-אור

Graphical User Interfaces 2

Transcription:

הרצאה מספר: #07 GUI components רכיבים נוספים חלק ג' תכנות ג'אווה + אינטרנט JAVA & WEB PROGRAMMING צבי מלמד מכללת הדסה/מכללה חרדית כל הזכויות שמורות 1

המחלקה JOptionPane אפליקציות רבות משתמשות ב- dialog boxes למטרת אינטראקציה עם המשתמש למשל: "למחוק את הקובץ? כן / לא / בטל המחלקה JOptionPane מספקת מספר אפשרויות מוגדרות מראש לדיאלוגים ההפעלה על ידי קריאה למתודות סטטיות 2

- דיאלוג בסיסי ch14_2 jhtp GUI היכנסו לתיקייה המתאימה הריצו את הפקודה java Addition סקרו את הקוד של הדוגמא היכנסו לתיעוד JAVA וחפשו את המחלקה Class JOptionPane קראו בקצרה את ההקדמה של כל אחת מהמחלקות בהיררכיה שקודמת למחלקה זאת דוגמה אחרת להרצה: GUI_01_JOptionPane 3

המחלקה JOptionPane המארז: javax.swing המחלקה מספקת dialog boxes באמצעות מתודות סטטיות הנדסת אנוש: תיבות-הדיאלוג לא מאפשרות למשתמשים לעבוד עם האפליקציה כל עוד הן פתוחות. לעתים קרובות הן "מעצבנות" יש למעט בשימוש בהן להשתמש רק כשאתה אכן רוצה למנוע מהמשתמש את המשך האינטראקציה עם האפליקציה 4

- דיאלוג בסיסי ch14_2 jhtp GUI 5

המחלקה JOptionPane המחלקה מספקת קבועים להצגת אייקונים בתיבת הדו-שיח 6

Message Dialogs Message Dialogs באמצעות showmessagedialog שהיא פונקציה סטטית של JOptionPane ארגומנט ראשון: מיקום החלון. אם NULL אז באמצע המסך ארגומנט שני: הטקסט של ההודעה להציג ארגומנט שלישי: הכותרת של החלון titel bar ארגומנט רביעי: איזה סוג הודעה להציג. משתמשים בקבועים של המחלקה כגון YES_NO_OPTIONאו YES_NO_CANCEL_OPTION JOption-Pane.PLAIN_MESSAGE גורם לכך שלא מוצג ICON משמאל להודעה 7

הצגה של טקסט ותמונות דוגמא 14_06_07 8

הצגה של טקסט ותמונות דוגמא 14_06_07 9

יצירת Icon בד"כ על ידי העברתו כארגומנט לקונסטרקטור או למתודה seticon() Icon הוא אובייקט של מחלקה שמממשת את הממשק Icon במארז javax.swing. ImageIcon (package javax.swing) supports several image formats, including Graphics Interchange Format (GIF), Portable Network Graphics (PNG) and Joint Photographic Experts Group (JPEG). 10

גיבוי getclass().getresource("bug1.png") Invokes method getclass (inherited indirectly from class Object) to retrieve a reference to the Class object that represents the LabelFrame class declaration. Next, invokes Class method getresource, which returns the location of the image as a URL. The ImageIcon constructor uses the URL to locate the image, then loads it into memory. The class loader knows where each class it loads is located on disk. Method getresource uses the Class object s class loader to determine the location of a resource, such as an image file. Copyright 1992-2012 by Pearson Education, Inc. All Rights Reserved.

גיבוי A JLabel can display an Icon. JLabel constructor can receive text and an Icon. The last constructor argument indicates the justification of the label s contents. Interface SwingConstants (package javax.swing) declares a set of common integer constants (such as SwingConstants.LEFT) that are used with many Swing components. By default, the text appears to the right of the image when a label contains both text and an image. The horizontal and vertical alignments of a JLabel can be set with methods sethorizontalalignment and setverticalalignment, respectively. Copyright 1992-2012 by Pearson Education, Inc. All Rights Reserved.

גיבוי

כפתורי מצבים 17

JButtons ButtonGroup ActionEvent מייצר JButton state-button JCheckBox, JRadioButton יש להם מצבים של on/off true/false מייצרים ItemEvent מתודת האזנה: itemstatechanged לקבל ערך נוכחי: isselected Deitel 14_17 JRadioButton מוחזקים יחדיו על ידי אובייקט add() להוספת כפתור לקבוצה Deitel 14_19 18

JRadioButton 23 יוצרים כפתורים מוסיפים אותם למחלקה )שיורשת מ )Jframe יוצרים ButtonGroup מוסיפים את הכפתורים ל- ButtonGroup מוסיפים מאזין לכל כפתור צבי מלמד כל הזכויות שמורות.1.2.3.4.5

JRadioButton יוצרים כפתורים מוסיפים אותם למחלקה )שיורשת מ )Jframe יוצרים ButtonGroup מוסיפים את הכפתורים ל- ButtonGroup מוסיפים מאזין לכל כפתור מגדירים )כותבים( את המחלקה RadioButtonHandlerשמממשת ItemListener.1.2.3.4.5.6 24

JRadioButton מגדירים )כותבים( את המחלקה ItemListener RadioButtonHandlerשמממשת.6 25

JComboBox 26

JComboBox מערך names ישמש ליצירת ה- combo יצירת ה- icons 27

JComboBox ה- listener הוא מחלקה אנונימית 28

JComboBox יוצרים מערך של ערכים ל-קומבו names יוצרים מערך של אייקונים להציג, בהתאמה במאזין המתודה getstatechangeמזומנת כשיש בחירת ערך חדש המתודה של האירוע מטיפוס getstatechange - ItemEvent מחזירה את סוג השינוי. במקרה שלנו: ItemEvent.SELECTED המתודה של הקומבו - getselectedindexמחזירה את האינדקס שנבחר, ומשתמשים בו לפי הצורך setmaximumrowcount להגדרת כמה פריטים להציג כאשר המשתמש לחץ על הרכיב. מייצר פס גלילה אם יש יותר רכיבים..1.2.3.4.5 29

JList JList משמש לבחירה שהמשתמש יכול לבחור ממנה מייצר ListSelectionEvents ברשימה שבוחרים איבר אחד 24_14 Deitel בחירת צבע מתוך רשימת צבעים מתודת האזנה: itemstatechanged setvisiblerowcountלהגדרת כמה פריטים להציג setselectionmode המחלקה לקבוע את אופן הבחירה ListSelectionModel SINGLE_SELECTION SINGLE_INTERVAL_SELECTION MULTIPLE_INTERVAL_SELECTION )בודד או מרובה( קובעת את מוד הבחירה 30

JList המאזין הוא מהמחלקה ListSelectionListener ובהתאמה addlistselectionlistener כאמור - setvisiblerowcountלהגדרת כמה פריטים להציג... אבל אם יש יותר פריטים ממספר השורות לא מוסיף אוטומטית scroll-bar אז מה עושים? מוסיפים )בעצמנו( JScrollPane 31

עוד על אירועי עכבר ממשקים MouseListener and MouseMotionListener לאירועי עכבר על כל רכיב GUI שהוא. הממשק MouseInputListener )במארז: )javax.swing.event מרחבי את שני הממשקים הנ"ל ויוצר ממשק אחד שמכיל את המתודות של שניהם 35

עוד על אירועי עכבר 36

טיפול באירועי עכבר המתודות שמטפלות באירועי עכבר מקבלות אובייקט מטיפוס MouseEvent שמכיל את המידע על האירוע, כולל הקואורדינטות של האירוע (0,0) פינה שמאלי עליונה של האובייקט GUI שעליו התרחש האירוע מתודות וקבועים של המחלקה InputEvent )שהיא מחלקת על של )Mouse-Event s מאפשרים לדעת איזה כפתור נלחץ 39

תיקייה: שורת ההרצה: תרגיל דוגמא לאירועי עכבר: MouseDrag or GUI_02_MouseDrag C:\Dropbox\workspaces\workspace\java-A\bin java gui_demo.mousedrag pink-mouse-md.png 40

MouseTracker 41

MouseTracker 42

MouseTracker 43

MouseTracker 44

MouseTracker 45

MouseTracker 46

Adapter Class 47

תזכורת מחלקות Event-Adapter

טיפול במקשים Key Event Handling הממשק KeyListenerמגיב על אירועי מקלדת המתודות שהוא מממש: keyreleased, keypressed, keytyped keytyped מגיבה )נקראת בתגובה( ללחיצת מקש שאיננו )ENTER )כגון action-key הן מקבלות אירוע KeyEvent קבלת ערך המקש: getkeycode קבלת מחרוזת שמתארת את המקש: getkeytext קבלת ערך UNICODE של המקש: getkeychar האם זה היה כפתור פעולה: isactionkey 52

טיפול במקשים Key Event Handling )המשך( המתודה getmodifiers מחזירה אם נלחץ CNTL SHIFT וכו' getkeymodifierstext לקבלת שמות המקשים שנלחצו מתודות של InputEvent שהיא מחלקת העל של KeyEvent ששימושיות כאן: iscontroldown, isaltdown, ismetadown, isshiftdown דוגמא 14_36 deitel 53

בדיקה אם Meta-key נלחצו לצורך ההדגמה )ושלא לצורך המחשבון(... כיצד נבדוק אם כפתור META )כלומר: CNTL, )ALT, SHIFT, נלחץ? למשל, לבדוק אם המשתמש הקיש A+CNTL if (event.getkeycode() == 'A' && (event.getmodifiers() & InputEvent.CTRL_MASK)!= 0) {............ } CNTL וגם ALT נלחצו: if ((event.getmodifiers() & (Event.ALT_MASK Event.CTRL_MASK))!=0) {............ } בכדי לבדוק אם או... if ((event.getmodifiers() & InputEvent.CTRL_MASK)!= 0) && event.getmodifiers() & InputEvent.ALT_MASK)!= 0) ) {............ } 54