Programski jezici. leto

Similar documents
GUI - događaji (Events) i izuzeci. Bojan Tomić

CSE 143. Event-driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT

SD Module-1 Advanced JAVA

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

SD Module-1 Advanced JAVA. Assignment No. 4

CSE 331. Event-driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT

Programski jezik JAVA PREDAVANJE 5

Dr. Hikmat A. M. AbdelJaber

Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt

Programski jezik JAVA PREDAVANJE

CSE 331. Event- driven Programming and Graphical User Interfaces (GUIs) with Swing/AWT

Java Graphical User Interfaces AWT (Abstract Window Toolkit) & Swing

Java & Graphical User Interface II. Wang Yang wyang AT njnet.edu.cn

COMPSCI 230. Software Design and Construction. Swing

Objektno orijentisano programiranje 2. Grafički korisnički interfejs

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

Packages: Putting Classes Together

Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo

Table of Contents. Chapter 1 Getting Started with Java SE 7 1. Chapter 2 Exploring Class Members in Java 15. iii. Introduction of Java SE 7...

CSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets

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

Systems Programming Graphical User Interfaces

Graphical User Interfaces in Java - SWING

Handout 14 Graphical User Interface (GUI) with Swing, Event Handling

Previously, we have seen GUI components, their relationships, containers, layout managers. Now we will see how to paint graphics on GUI components

GUI Design. Overview of Part 1 of the Course. Overview of Java GUI Programming

Course Status Networking GUI Wrap-up. CS Java. Introduction to Java. Andy Mroczkowski

The AWT Event Model 9

11/7/12. Discussion of Roulette Assignment. Objectives. Compiler s Names of Classes. GUI Review. Window Events

Chapter 6: Graphical User Interfaces

user-friendly and easy to use.

Programiranje III razred

GUI Programming: Swing and Event Handling

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

Java AWT Windows, Text, & Graphics

PROGRAMMING DESIGN USING JAVA (ITT 303) Unit 7

VB komande. Programiranje 1

VRIJEDNOSTI ATRIBUTA

Frames, GUI and events. Introduction to Swing Structure of Frame based applications Graphical User Interface (GUI) Events and event handling

Graphics. Lecture 18 COP 3252 Summer June 6, 2017

Graphical User Interfaces (GUIs)

Graphical User Interfaces. Comp 152

Graphic User Interfaces. - GUI concepts - Swing - AWT

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

MIT AITI Swing Event Model Lecture 17

Jonathan Aldrich Charlie Garrod

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

Graphical User Interfaces. Swing. Jose Jesus García Rueda

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

Window Interfaces Using Swing Objects

Advanced Java Programming (17625) Event Handling. 20 Marks

Programming Mobile Devices J2SE GUI

Java. GUI building with the AWT

Introduction to GUIs. Principles of Software Construction: Objects, Design, and Concurrency. Jonathan Aldrich and Charlie Garrod Fall 2014

Programming Languages and Techniques (CIS120)

Događaj koji se javlja u toku izvršenja programa i kvari normalno izvršenje. Kada se desi izuzetak, sistem pokušava da pronađe način da ga obradi.

Interacción con GUIs

import java.applet.applet; import java.applet.audioclip; import java.net.url; public class Vjesala2 {

Parts of a Contract. Contract Example. Interface as a Contract. Wednesday, January 30, 13. Postcondition. Preconditions.

CONTENTS. Chapter 1 Getting Started with Java SE 6 1. Chapter 2 Exploring Variables, Data Types, Operators and Arrays 13

GUI in Java TalentHome Solutions

Graphical User Interface (GUI) and Object- Oriented Design (OOD)

Module 4 Multi threaded Programming, Event Handling. OOC 4 th Sem, B Div Prof. Mouna M. Naravani

CSEN401 Computer Programming Lab. Topics: Graphical User Interface Window Interfaces using Swing

GUI DYNAMICS Lecture July 26 CS2110 Summer 2011

BM214E Object Oriented Programming Lecture 13

Together, the appearance and how user interacts with the program are known as the program look and feel.

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

PREDMET. Osnove Java Programiranja. Čas JAVADOC

Java Swing. Recitation 11/(20,21)/2008. CS 180 Department of Computer Science, Purdue University

Izrada VI laboratorijske vježbe

Window Interfaces Using Swing Objects

Swing from A to Z Some Simple Components. Preface

Basicsof. JavaGUI and SWING

Outline. Topic 9: Swing. GUIs Up to now: line-by-line programs: computer displays text user types text AWT. A. Basics

Agenda. Container and Component

G51PRG: Introduction to Programming Second semester Applets and graphics

Datenbank-Praktikum. Universität zu Lübeck Sommersemester 2006 Lecture: Swing. Ho Ngoc Duc 1

Introduction to the JAVA UI classes Advanced HCI IAT351

CPS122 Lecture: Graphical User Interfaces and Event-Driven Programming

Introduction to concurrency and GUIs

UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

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

Uputstvo za korišćenje logrotate funkcije

Advanced Java Programming. Swing. Introduction to Swing. Swing libraries. Eran Werner, Tel-Aviv University Summer, 2005

Topic 9: Swing. Swing is a BIG library Goal: cover basics give you concepts & tools for learning more

Topic 9: Swing. Why are we studying Swing? GUIs Up to now: line-by-line programs: computer displays text user types text. Outline. 1. Useful & fun!

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

Lab 4. D0010E Object-Oriented Programming and Design. Today s lecture. GUI programming in

Java: Graphical User Interfaces (GUI)

Graphical interfaces & event-driven programming

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Računarske osnove Interneta (SI3ROI, IR4ROI)

GUI Basics. Object Orientated Programming in Java. Benjamin Kenwright

Introduction. Introduction

Programske paradigme Funkcionalna paradigma

Swing. By Iqtidar Ali

Building a GUI in Java with Swing. CITS1001 extension notes Rachel Cardell-Oliver

Vežbe - XII nedelja PHP Doc

Transcription:

Programski jezici leto 2010-11

Grafički programi Koriste grafičke mogućnosti: boje, fontove, geometrijske oblike, slike,... Komuniciraju sa korisnikom preko grafičkog korisničkog interfejsa koji se sastoji od grafičkih komponenti: prozor, meni, dugme, oznaka, tekstualno polje,... 2

Programiranje grafičkih programa se razlikuje od programiranja konzolnih programa, jer je način njihovog izvršavanja različit Grafički program se ne izvršava sinhrono (od početka do kraja, jedna naredba iza druge), već asinhrono Grafički program se sastoji od naredbi koje se izvršavaju kao reakcija na korisnikove aktivnosti nad komponentama grafičkog interfejsa programa 3

Klasični pristup: programski se određuje kada korisnik unosi ulazne podatke i kada dobija izlazne podatke Grafički pristup: korisnik određuje kada unosi ulazne podatke i kada dobija izlazne podatke (izbor iz menija, klik na dugme,...) Korisnikove aktivnosti sa fizičkim uređajima miša i tastature nad grafičkim elementima programa su drugi oblik ulaznih podataka (događaji) 4

Programiranje grafičkih programa je programiranje vođeno događajima (engl. event-driven programming) Grafički program dobija događaje kao ulaz Deo grafičkog programa koji reaguje na određeni događaj se naziva rukovalac događaja (engl. event listener, event handler) 5

Java grafički programi svoj korisnički interfejs grade integrisano sa ostalim naredbama Java grafički programi koriste klase iz dve standardne biblioteke za rad sa grafičkim komponentama Biblioteka AWT (Abstract Window Toolkit) do Java verzije 1.1 u paketu java.awt Biblioteka Swing od Java verzije 1.2 u paketu javax.swing 6

Biblioteka AWT podržava minimalni skup komponenti grafičkog interfejsa koje poseduju sve platforme koje podržavaju Javu Oslanja se na odgovarajući operativni sistem Izgleda podjednako osrednje na svim platformama Klase u paketima java.awt.* 7

Biblioteka Swing je napisana od nule Obezbeđuje veći broj složenijih grafičkih komponenti od biblioteke AWT Ne oslanja se na operativni sistem Jednako izgleda i radi na svim platformama Klase u paketima javax.swing.* Nazivi klasa počinju sa Jxxx 8

Grafički elementi za pravljenje korisničkog interfejsa Prozor (pravougaonik na ekranu) Okvir (permanentni prozor) Dijalog (privremeni prozor) Komponenta (element koji ima veličinu i poziciju na ekranu i proizvodi događaje) Kontejner (komponenta koja može obuhvatati druge komponente) 9

Okvir Prozor najvišeg nivoa (ne nalazi se unutar drugog prozora i ne može se dodati drugom prozora) Glavni prozor grafičkog programa Mogućnosti: može se otvoriti i zatvoriti, može mu se promeniti veličina, može obuhvatati druge komponente Klasa JFrame 10

Okvir 11

public class PrazanOkvir { public static void main(string[] args) { } } JFrame okvir = new JFrame("Prazan okvir"); okvir.setsize(300, 200); okvir.setlocation(100, 150); okvir.setdefaultcloseoperation(jframe.exit_on_close); okvir.setvisible(true); 12

Kontejneri (okvir, panel) Mogu se samostalno prikazati na ekranu Služe za grupisanje komponenti Komponente (dugme, oznaka, tekstualno polje, meni,...) Mogu se prikazati samo unutar nekog kontejnera 13

Primer: Grafičko programiranje 14

Primer: Grafičko programiranje JButton dugmeok = new JButton("OK"); JLabel oznakaime = new JLabel("Unesite svoje ime: "); JTextField tekstpoljeime = new JTextField("Ovde upišite svoje ime"); JCheckBox potvrdastudent = new JCheckBox("Student"); JRadioButton radiodugmezaposlen = new JRadioButton("Zaposlen"); JComboBox kombpoljegodina = new JComboBox(new String[]{"I godina", "II godina", "III godina", "IV godina"}); 15

Dodavanje komponenti kontejneru: add() public class TestGUIKomponente{ public static void main(string[] args) { // Konstruisanje glavnog prozora (okvira) JFrame okvir = new JFrame("Test GUI komponente"); okvir.setlocation(100, 150); okvir.setdefaultcloseoperation(jframe.exit_on_close); // Konstruisanje komponenti JButton dugmeok = new JButton("OK");... 16

} } // Konstruisanje panela za komponente JPanel panel = new JPanel(); // Smeštanje komponenti u panel panel.add(dugmeok);... // Smeštanje panela u okvir okvir.add(panel); okvir.pack(); okvir.setvisible(true); 17

Koordinate grafičkih elemenata okvir.setbounds(100, 150, 300, 200); 18

Razmeštanje komponenti unutar kontejnera Prilikom dodavanja komponente unutar kontejnera (metodom add()), automatski se određuje pozicija i veličina komponente Svaki kontejner ima podrazumevani postupak razmeštanja komponenti unutar njega Postupak razmeštanja se može promeniti metodom: public void setlayout(layoutmanager m) 19

Standardni postupci razmeštanja (engl. layout manager) FlowLayout GridLayout BorderLayout... 20

Primer: 21

Primer: 22

Rukovaoci događajima Programiranje grafičkih programa se zasniva na događajima Grafički program reaguje na razne vrste događaja Događaji se dešavaju u nepredvidljivim trenucima i po nepredvidljivom redosledu 23

Rukovaoci događajima Događaji su predstavljeni objektima klasa koje su naslednice klase EventObject Događaji su razvrstani prema tipu događaja događaji klika na dugme događaji rada sa mišem događaji rada sa tastaturom... 24

Rukovaoci događajima Mehanizam rukovanja događajima Komponenta u kojoj se događaj desio je izvor događaja Kada se desi događaj, JVM konstruiše objekat koji opisuje nastali događaj Konstruisani objekat događaja se prenosi tačno određenom metodu rukovaoca događaja i taj metod se poziva radi obrade događaja 25

Rukovaoci događajima Rukovalac događaja mora biti objekat klase koja implementira specijalni interfejs Rukovalac događaja se mora eksplicitno pridružiti komponenti koja je potencijalni izvor događaja 26

Rukovaoci događajima Odnos između klasa i interfejsa za rukovanje događajima 27

Rukovaoci događajima Tipovi događaja koje generišu komponente (izvori događaja) Tip događaja Interfejs rukovaoca događaja ActionEvent ActionListener MouseEvent MouseListener WindowEvent WindowListener KeyEvent KeyListener FocusEvent FocusListener ItemEvent ItemListener TextEvent TextListener ComponentEvent ComponentListener ContainerEvent ContainerListener...... 28

Rukovaoci događajima Standardna imena interfejsa i metoda Rukovalac događaja implementira odgovarajući XxxxListener interfejs Rukovalac događaja se pridružuje komponenti metodom addxxxxlistener() U rukovaocu događaja se izvršava tačno određeni metod koji obrađuje događaj 29

Rukovaoci događajima Primer: akcijski događaj (ActionEvent) za klik na dugme tasterom miša Akcijski događaj se obrađuje pomoću ActionListener objekta ActionListener objekat mora imati metod actionperformed() Taj metod se automatski poziva kada se desi akcijski događaj 30

Rukovaoci događajima Rukovalac događaja za klik na dugme mora biti objekat klase koja implementira interfejs ActionListener To obezbeđuje da rukovalac događaja za klik na dugme sadrži metod koji se poziva kada se desi događaj klika na dugme 31

Rukovaoci događajima Format klase RD koja predstavlja rukovaoca događaja i služi za konstruisanje ActionListener objekta: public class RD implements ActionListener {... public void actionperformed(actionevent e) { // Naredbe koje obrađuju // događaj klika na dugme } } 32

Rukovaoci događajima Primer: brojanje klikova na dugme 33