Autoboxing/Autounboxing

Similar documents
Introduction to JavaFX. Tecniche di Programmazione A.A. 2012/2013

Fondamenti di Java. Introduzione alla costruzione di GUI (graphic user interface)

3. Surfing with Your Tablet

Outline. 1.! Development Platforms for Multimedia Programming!

First Java Programs. V. Paúl Pauca. CSC 111D Fall, Department of Computer Science Wake Forest University. Introduction to Computer Science

Introduction to Windows 8

Creating Comic Life Images Using Microsoft Word, Clipart, and Irfanview.

Windows 8.1 Tips and Tricks

City of Corpus Christi. Mobile GIS Viewer. For ipad

Tutorial: Biped Character in 3D Studio Max 7, Easy Animation


DEVELOPING CONTRACT - DRIVEN WEB SERVICES USING JDEVELOPER. The purpose of this tutorial is to develop a java web service using a top-down approach.

Pcounter Web Administrator User Guide - v Pcounter Web Administrator User Guide Version 1.0

Advantage Cloud Access: Microsoft Remote Desktop for Android

e(fx)clipse - JavaFX Tooling and Runtime

Creating and Viewing Task Dependencies between Multiple Projects using Microsoft Project

Pemrograman Dasar. Basic Elements Of Java

JavaFX Session Agenda

1. To start Installation: To install the reporting tool, copy the entire contents of the zip file to a directory of your choice. Run the exe.

Quick Start Guide. Microsoft OneNote 2013 looks different from previous versions, so we created this guide to help you minimize the learning curve.

HammerDB Metrics. Introduction. Installation

CS 335 Lecture 06 Java Programming GUI and Swing

WACOM GESTURE GUIDE: USING TOUCH WITH WACOM PRODUCTS

Getting Started with Web Based Data Reporting. November, 2005

Remote Desktop Services Guide

Click on various options: Publications by Wizard Publications by Design Blank Publication

Introduction to Computers: Session 3 Files, Folders and Windows

Introduction to Java

idvr-pro Viewer Software for Mac User Manual ver 0.1

The following program is aiming to extract from a simple text file an analysis of the content such as:

Quick Start Guide. Microsoft OneNote 2013 looks different from previous versions, so we created this guide to help you minimize the learning curve.

Source code security testing

Umbraco Content Management System (CMS) User Guide

Solar-Generation Data Visualization Software Festa Operation Manual

USER CONVERSION P3, SURETRAK AND MICROSOFT PROJECT ASTA POWERPROJECT PAUL E HARRIS EASTWOOD HARRIS

Getting Started with Telerik Data Access. Contents

Introduction to Entity Beans

Problem 1 (1.5 points)

Parallels Remote Application Server

Take Pictures on your Android Tablet or Phone

WebViewer User Guide. version PDFTron Systems, Inc. 1 of 13

1) Which of the following is a constant, according to Java naming conventions? a. PI b. Test c. x d. radius

Teradata SQL Assistant Version 13.0 (.Net) Enhancements and Differences. Mike Dempsey

Knocker main application User manual

GUI Event-Driven Programming

Managing your Joomla! 3 Content Management System (CMS) Website Websites For Small Business

How to Install Java onto your system

Setting up Wireless ipad Control of your DEWETRON Computer-based System

Writer Guide. Chapter 15 Using Forms in Writer

Getting Started with Internet Explorer 10

Canterbury Maps Quick Start - Drawing and Printing Tools

Chapter 15 Using Forms in Writer

System performance monitoring in RTMT

WA2099 Introduction to Java using RAD 8.0 EVALUATION ONLY. Student Labs. Web Age Solutions Inc.

OPPO MediaControl HD App: Handy touch control adds more fun to home theatre enjoyment

WEB SERVICES TECHNICAL GUIDE FOR DEVELOPERS

This Quick Reference Sheet covers the most common technical issues that may be encountered.

SAHARA DIGITAL8 RESPONSIVE MAGENTO THEME

WHAT S NEW IN OBIEE

UNIVERSITY OF CALGARY Information Technologies WEBFORMS DRUPAL 7 WEB CONTENT MANAGEMENT

WA Manager Alarming System Management Software Windows 98, NT, XP, 2000 User Guide

Quick Start Guide: Mac vpad September 2007

Windows Movie Maker 2012

Keep your search simple. Only the last name is required. First name and Phone are optional.

Image Registration. Using Quantum GIS

LAB 1. Familiarization of Rational Rose Environment And UML for small Java Application Development

Corso: Mastering Microsoft Project 2010 Codice PCSNET: MSPJ-11 Cod. Vendor: Durata: 3

Changing How the Mouse Works in Windows 7

JustClust User Manual

Task Card #2 SMART Board: Notebook

Basic Computer Skills for Beginners. Mesa Regional Family History Center

Misurazione performance. Processing time. Performance. Throughput. Francesco Marchioni Mastertheboss.com Javaday IV Roma 30 gennaio 2010

Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick Reference Guide

Chapter 2 Introduction to Java programming

Appointment Scheduler

How To Use The Arles Image Page Creator On Pc Or Mac Or Macbook Or Macintosh (Or Mac) With A Web Browser (Or Ipc) With An Ipc (Or Pc Or Ipc).Html (Or Your Mac)

Address Collector. - Tutorial -

Mobile Technique and Features

Main Points. File layout Directory layout

Contents. Stationery Greeting Cards at a glance Stationery Greeting Cards in Mail Installing Stationery Greeting Cards...

-ipad 2: Quick Reference Guide-

Siemens Applied Automation Page 1 11/26/03 9:57 PM. Maxum ODBC 3.11

Generative Drafting. Page DASSAULT SYSTEMES. IBM Product Lifecycle Management Solutions / Dassault Systemes

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

TakeMySelfie ios App Documentation

LogMeIn Ignition for Android User Guide

Proteus Telephone Management System

DIPLOMADO DE JAVA - OCA

Swing. A Quick Tutorial on Programming Swing Applications

HTC Hotline Support: days a week 8am EST to 1am EST. Your HTC Desire 601 User guide

Help. Contents Back >>

Scanner sc = new Scanner(System.in); // scanner for the keyboard. Scanner sc = new Scanner(System.in); // scanner for the keyboard

ImagineWorldClient Client Management Software. User s Manual. (Revision-2)

J a v a Quiz (Unit 3, Test 0 Practice)

BROWSER COMPATIBILITY GUIDE

Transcription:

Autoboxing

Autoboxing/Autounboxing public static void main(string args[]) { int dim=10; Pila<Integer> s=new Pila(); // s= new Coda(); for (int k=0;k<dim;k++){ //Integer o=new Integer(k); //s.inserisci(o); s.inserisci(k); for (int k=0;k<3*dim;k++) { //int j= Integer.parseInt(s.estrai()); int j= s.estrai(); System.out.println(j);

Even/ di tas/era

Un app con due bo7oni public class Keyboard1 extends Application {! int counter=0;!!! public void start(stage stage) {! TilePane box=new TilePane();! box.sethgap(50);! final Button b1=new Button("Uno");! final Button b2=new Button("Due");!!! box.getchildren().addall(b1,b2);! EventHandler actionhandler=new EventHandler(){! public void handle(event t) {! System.out.println((counter++)+!!!!!!!((Button)(t.getTarget())).getText());! ;!!!!b1.addeventhandler(actionevent.action, actionhandler);! b2.addeventhandler(actionevent.action, actionhandler);!! 0Uno 1Uno 2Uno 3Uno

che ca7ura gli even/ di keyboard! EventHandler<KeyEvent> keyeventhandler =! new EventHandler<KeyEvent>() {! public void handle(keyevent keyevent) {! if (keyevent.getcode() == KeyCode.U) {! b1.fireevent(new ActionEvent());! System.out.println(keyEvent.getSource()!!!!!!!!!!+" => "+keyevent.gettarget());!!!!!!!!!!! ;!! Scene scene = new Scene(box, 400, 300);! b1.addeventhandler(keyevent.key_pressed, keyeventhandler);! stage.settitle("my JavaFX Application");! stage.setscene(scene);! stage.show();! public static void main(string[] args) {! Application.launch(args);! Bu7on[id=null, styleclass=bu7on] => Bu7on[id=null, styleclass=bu7on]

ma funziona? SI! NO!

Sistemiamola. EventHandler<KeyEvent> keyeventhandler =! new EventHandler<KeyEvent>() {! public void handle(keyevent keyevent) {! if (keyevent.getcode() == KeyCode.U) {! b1.fireevent(new ActionEvent());! System.out.println(keyEvent.getSource()!!!!!!!!!!+" => "+keyevent.gettarget());!!!!!!!!! ;!! Scene scene = new Scene(box, 400, 300);!!! //b1.addeventhandler(keyevent.key_pressed, keyeventhandler);!! stage.addeventhandler(keyevent.key_pressed, keyeventhandler);!! stage.settitle("my JavaFX Application");!!! stage.setscene(scene);! stage.show();! javafx.scene.scene@68a08ca7 => Bu7on[id=null, styleclass=bu7on]

Ora ges/amo anche l'altro bo7one. EventHandler<KeyEvent> keyeventhandler =! new EventHandler<KeyEvent>() {! public void handle(final KeyEvent keyevent) {! System.out.println(keyEvent.getSource()+"!!!!!!!!!!=> "+keyevent.gettarget());!! switch (keyevent.getcode()){!! ;! case U:! case DIGIT1:! b1.fireevent(new ActionEvent());! break;! case D:! case DIGIT2:! b2.fireevent(new ActionEvent());! break;!

Events User Action Event Type Class User Action Event Type Class Key on the keyboard is pressed. KeyEvent Node, Scen e Zoom gesture is performed on an object ZoomEvent Node, Scene Mouse is moved or a button on the mouse is pressed. MouseEvent Node, Scen e Context menu is requested ContextMenuEvent Node, Scene Full mouse press-dragrelease action is performed. Input from an alternate method for entering characters (typically for a foreign language) is generated, changed, removed, or committed. Platform-supported drag and drop action is performed. MouseDragEvent Node, Scen e InputMethodEve nt DragEvent Node, Scen e Node, Scen e Object is scrolled. ScrollEvent Node, Scen e Rotation gesture is performed on an object Swipe gesture is performed on an object RotateEvent SwipeEvent Node, Scen e Node, Scen e An object is touched TouchEvent Node, Scen e Zoom gesture is performed on an object! ZoomEvent Node, Scen e Button is pressed, combo box is shown or hidden, or a menu item is selected. Item in a list, table, or tree is edited. Media player encounters an error. Menu is either shown or hidden. Popup window is hidden. Tab is selected or closed. Window is closed, shown, or hidden.! ActionEvent ListView.EditEvent TableColumn.CellEdi tevent TreeView.EditEvent MediaErrorEvent Event Event Event WindowEvent ButtonBase,Com boboxbase,cont extmenu,menuit em, TextField ListView TableColumn TreeView MediaView Menu PopupWindow Tab Window

Event chain - 1 public class EventFilterDemo extends Application { public void start(final Stage stage) { ; EventHandler handler=new EventHandler<ActionEvent>() { @Override public void handle(actionevent t) { EventTarget target=t.gettarget(); Object source=t.getsource(); String id=null; if (source instanceof Node { id=((node)source).getid(); else if (source instanceof Stage) { id="stage"; else if (source instanceof Scene) { else { id="scene"; System.out.println("Unrecognized Object"+source); System.out.println("HANDLER:"+id+" "+source+" ==> " +target);

Event chain - 2 EventHandler filter=new EventHandler<ActionEvent>() { @Override ; public void handle(actionevent t) { EventTarget target=t.gettarget(); Object source=t.getsource(); String id=null; if (source instanceof Node { id=((node)source).getid(); else if (source instanceof Stage) { id="stage"; else if (source instanceof Scene) { else { id="scene"; System.out.println("Unrecognized Object"+source); System.out.println("FILTER:"+id+" "+source+" ==> " +target);

Event chain - 2 EventHandler filter=new EventHandler<ActionEvent>() { @Override ; public void handle(actionevent t) { EventTarget target=t.gettarget(); Object source=t.getsource(); String id=null; if (source instanceof Node { id=((node)source).getid(); else if (source instanceof Stage) { id="stage"; else if (source instanceof Scene) { else { id="scene"; System.out.println("Unrecognized Object"+source); System.out.println("FILTER:"+id+" "+source+" ==> " +target);

Event chain - 3 TilePane layout=new TilePane(); Button button=new Button("Uno"); Button button2=new Button("DUE"); layout.getchildren().addall(button,button2); Scene scene = new Scene(layout); layout.setid("stackpane"); button.setid("button"); button.setid("button2"); scene.addeventfilter(actionevent.action,filter); scene.addeventhandler(actionevent.action,handler); stage.addeventfilter(actionevent.action,filter); stage.addeventhandler(actionevent.action,handler); layout.addeventfilter(actionevent.action,filter); layout.addeventhandler(actionevent.action,handler); button2.addeventfilter(actionevent.action,filter); button2.addeventhandler(actionevent.action,handler); button.addeventfilter(actionevent.action,filter); button.addeventhandler(actionevent.action,handler); stage.setscene(scene); stage.show(); public static void main(string[] args) { Application.launch(args);

Output FILTER:STAGE javafx.stage.stage@7c1031ba ==> BuDon[id=BUTTON- 1, styleclass=budon] FILTER:SCENE javafx.scene.scene@b30e9f8 ==> BuDon[id=BUTTON- 1, styleclass=budon] FILTER:STACKPANE TilePane[id=STACKPANE, styleclass=root] ==> BuDon[id=BUTTON- 1, styleclass=budon] FILTER:BUTTON- 1 BuDon[id=BUTTON- 1, styleclass=budon] ==> BuDon[id=BUTTON- 1, styleclass=budon] HANDLER:BUTTON- 1 BuDon[id=BUTTON- 1, styleclass=budon] ==> BuDon[id=BUTTON- 1, styleclass=budon] HANDLER:STACKPANE TilePane[id=STACKPANE, styleclass=root] ==> BuDon[id=BUTTON- 1, styleclass=budon] HANDLER:SCENE javafx.scene.scene@b30e9f8 ==> BuDon[id=BUTTON- 1, styleclass=budon] HANDLER:STAGE javafx.stage.stage@7c1031ba ==> BuDon[id=BUTTON- 1, styleclass=budon] FILTER:STAGE javafx.stage.stage@7c1031ba ==> BuDon[id=BUTTON- 2, styleclass=budon] FILTER:SCENE javafx.scene.scene@b30e9f8 ==> BuDon[id=BUTTON- 2, styleclass=budon] FILTER:STACKPANE TilePane[id=STACKPANE, styleclass=root] ==> BuDon[id=BUTTON- 2, styleclass=budon] FILTER:BUTTON- 2 BuDon[id=BUTTON- 2, styleclass=budon] ==> BuDon[id=BUTTON- 2, styleclass=budon] HANDLER:BUTTON- 2BuDon[id=BUTTON- 2, styleclass=budon] ==> BuDon[id=BUTTON- 2, styleclass=budon] HANDLER:STACKPANE TilePane[id=STACKPANE, styleclass=root] ==> BuDon[id=BUTTON- 2, styleclass=budon] HANDLER:SCENE javafx.scene.scene@b30e9f8 ==> BuDon[id=BUTTON- 2, styleclass=budon] HANDLER:STAGE javafx.stage.stage@7c1031ba ==> BuDon[id=BUTTON- 2, styleclass=budon]

Event chain v.2-1 public void start(final Stage stage) { class SuperHandler<T extends Event> implements EventHandler<T>{ ; SuperHandler() { super(); protected EventTarget target; protected Object source; protected String id; @Override public void handle(t t) { target=t.gettarget(); source=t.getsource(); id=null; if (source instanceof Node) { id=((node)source).getid(); else if (source instanceof Stage) { id="stage"; else if (source instanceof Scene) { else { id="scene"; System.out.println("Unrecognized Object"+source);

Event chain v.1-1 public class EventFilterDemo extends Application { public void start(final Stage stage) { ; EventHandler handler=new EventHandler<ActionEvent>() { @Override public void handle(actionevent t) { EventTarget target=t.gettarget(); Object source=t.getsource(); String id=null; if (source instanceof Node { id=((node)source).getid(); else if (source instanceof Stage) { id="stage"; else if (source instanceof Scene) { else { id="scene"; System.out.println("Unrecognized Object"+source); System.out.println("HANDLER:"+id+" "+source+" ==> " +target);

Event chain v.2 2b SuperHandler<ActionEvent> filter=new SuperHandler<ActionEvent>() { public void handle(actionevent t) { ; super.handle(t); System.out.println("FILTER:"+id+" "+source+" ==> "+target); SuperHandler<ActionEvent> handler=new SuperHandler<ActionEvent>() { ; public void handle(actionevent t) { super.handle(t); System.out.println("HANDLER:"+id+" "+source+" ==> "+target);

Event chain cu7er 1 SuperHandler<ActionEvent> filter=new SuperHandler<ActionEvent>() { public void handle(actionevent t) { ; super.handle(t); System.out.println("FILTER:"+id+" "+source+" ==> "+target); SuperHandler<ActionEvent> handler=new SuperHandler<ActionEvent>() { ; public void handle(actionevent t) { super.handle(t); System.out.println("HANDLER:"+id+" "+source+" ==> "+target); SuperHandler<ActionEvent> cutter=new SuperHandler<ActionEvent>() { public void handle(actionevent t) { super.handle(t); System.out.println("CUTTER:"+id+" "+source+" ==> "+target); t.consume(); ;

Event chain cu7er 2 scene.addeventfilter(actionevent.action,filter); scene.addeventhandler(actionevent.action,handler); stage.addeventfilter(actionevent.action,filter); stage.addeventhandler(actionevent.action,handler); layout.addeventfilter(actionevent.action,cutter); layout.addeventhandler(actionevent.action,handler); button.addeventfilter(actionevent.action,cutter); button.addeventhandler(actionevent.action,handler); FILTER:STAGE javafx.stage.stage@7c1031ba ==> BuDon[id=BUTTON- 1, styleclass=budon] FILTER:SCENE javafx.scene.scene@b30e9f8 ==> BuDon[id=BUTTON- 1, styleclass=budon] CUTTER:STACKPANE TilePane[id=STACKPANE, styleclass=root] ==> BuDon[id=BUTTON- 1, styleclass=budon]

Event chain cu7er 2b scene.addeventfilter(actionevent.action,filter); scene.addeventhandler(actionevent.action,handler); stage.addeventfilter(actionevent.action,filter); stage.addeventhandler(actionevent.action,handler); layout.addeventfilter(actionevent.action, filter); layout.addeventhandler(actionevent.action,cutter); button.addeventfilter(actionevent.action, filter); button.addeventhandler(actionevent.action,cutter); FILTER:STAGE javafx.stage.stage@7c1031ba ==> BuDon[id=BUTTON- 1, styleclass=budon] FILTER:SCENE javafx.scene.scene@b30e9f8 ==> BuDon[id=BUTTON- 1, styleclass=budon] FILTER:STACKPANE TilePane[id=STACKPANE, styleclass=root] ==> BuDon[id=BUTTON- 1, styleclass=budon] FILTER:BUTTON- 1 BuDon[id=BUTTON- 1, styleclass=budon] ==> BuDon[id=BUTTON- 1, styleclass=budon] CUTTER:BUTTON- 1 BuDon[id=BUTTON- 1, styleclass=budon] ==> BuDon[id=BUTTON- 1, styleclass=budon]

Monitoraggio di una variabile E' possibile che se il valore di una variabile cambia succeda qualcosa?

Polling In un ciclo, in un'altra thread, con/nuo a leggerne il valore finché non cambia

Soluzione 2 Usando proprietà osservabili.

Proprietà variabile (nascosta): p Proprietà: p metodi: getp() setp( ) getpproperty() es: centerx es: getcenterx() es: setcenterx( ) es: getcenterxproperty() la variabile nascosta potrebbe essere read- only!

Un esempio di proprietà: amountdue package propertydemo; import javafx.beans.property.doubleproperty; import javafx.beans.property.simpledoubleproperty; class Bill { // Define a variable to store the property private DoubleProperty amountdue = new SimpleDoubleProperty(); // Define a ge7er for the property's value public final double getamountdue(){return amountdue.get(); // Define a se7er for the property's value public final void setamountdue(double value){amountdue.set(value); // Define a ge7er for the property itself public DoubleProperty amountdueproperty() {return amountdue; (Esempio di Sco7 Hammel, Oracle) h7p://docs.oracle.com/javafx/2/api/index.html?javafx/beans/property/doubleproperty.html

Conce7o di Observable An Observable is an en/ty that wraps content and allows to observe the content for invalida/ons. Tiene una lista di ascoltatori all'interno del metodo set deve lanciare l'evento di changed o di invalidated changed(observablevalue<? extends T> observable, T oldvalue, T newvalue) This method needs to be provided by an implementa/on of ChangeListener.

Ridimensionamento della finestra

Ca7ura gli even/ di resize della scena public class WindowResize extends Application {! public void start(stage stage) {!!!! Node circ = new Circle(40, 40, 30);! Parent root = new Group(circ);! Scene scene = new Scene(root, 400, 300);! scene.widthproperty().addlistener(new ChangeListener<Number>() {! public void changed(observablevalue<? extends Number>! observableval, Number oldwidth, Number newwidth) {! System.out.println("Width: " + newwidth); );! scene.heightproperty().addlistener(new ChangeListener<Number>() {! public void changed(observablevalue<? extends Number>! observableval, Number oldheight, Number newheight) {! System.out.println("Height: " + newheight); );! stage.setscene(scene);! stage.show();!

PLAF Pluggable Look And Feel in JavaFX "Skinning" (with CSS) h7p://docs.oracle.com/javase/8/javafx/user- interface- tutorial/css_tutorial.htm