Advanced Java for Bioinformatics Winter 2017/18. Prof. Daniel Huson

Size: px
Start display at page:

Download "Advanced Java for Bioinformatics Winter 2017/18. Prof. Daniel Huson"

Transcription

1 Advanced Java for Bioinformatics, WS 17/18, D. Huson, November 8, Introduction Advanced Java for Bioinformatics Winter 2017/18 Prof. Daniel Huson Office hours: Thursdays 17-18h (Sand 14, C310a) 1.1 Course details Lectures: Thursdays 18:15-10h Hörsaal 2, Sand 6/7 Tutorials: Weekly participation in the tutorials is mandatory: Day Time Place Mo 12-14h C311, Sand 14 Tue 12-14h C311, Sand 14 Wed 12-14h A301, Sand 14 Enrollment: Please use Ilias to enroll in this course. The course password is Java2017 A link to the Ilias webpage is provided on this website: Prerequisites: Participants must have already taken Grundlagen der Bioinformatik or Bioinformatics I, or an equivalent course. We will write a lot of code, so a keen interest in programming is essential. This is not an introduction to Java, you must already know Java to participate in this course. How to get credit for this course: Always participate in the weekly problem sessions and actively present your results. You must received at least 50% of possible points to take the exam. Assignments are set every Thursday and are due on at the beginning of the lecture on the following Thursday. Successfully implement the programming project requirements. Pass the final exam. Final Exam: The final exam will be a 30 minute oral exam or 90 minute written exam. The first half will cover concepts and constructs presented in the lectures and the second half will cover the structure and implementation of your software project. This course is worth 6 ETCS credit points and so expect to work about 180h in total for this course.

2 2 Advanced Java for Bioinformatics, WS 17/18, D. Huson, November 8, Topics We will cover the following topics: Java 8 and JavaFX 8 FXML and CSS Concurrent programming Java web services Design patterns, unit testing GitHub, intellij The introduction to JavaFX will be based on these books: Anton Epple, JavaFX 8, Grundlagen und fortgeschrittene Techniken, dpunkt.verlag 2015 Herbert Schildt, Introducing JavaFX 8 Programming, Oracle Press, 2015 Kishori Sharan, Learn JavaFX 8, APress, Setup We will use the following setup: Java SE Development Kit 8u144 Intellij IDE Language level 8 Later will use SceneBuilder to create FXML files Will edit CSS files Will use GitHub classroom as code repository We will use GitHub classroom as a code repository, sign up here:...

3 Advanced Java for Bioinformatics, WS 17/18, D. Huson, November 8, JavaFX Java 1.0 provided AWT for GUI development. In 1997, Swing was introduced to replace AWT. Swing GUIs now feel dull and static; they are hard to implement and impossible to customize. There is no support for 3D, for animation or for customization. Recently JavaFX was introduced to replace Swing as GUI Framework for Java. It is part of the offical Oracle SDK ( OpenJDK does not contain it by default.) Note that AWT and Swing remain part of Java releases. JavaFX can be integrated into existing Swing-based Java programs. Highlights are: Easy to use Stage and Scene paradigm. Easy to use 3D graphics Easy to use animation support Use of observables and bindings GUI specification in FXML using SceneBuilder Easy to use support for managing concurrent tasks and services Customization using CSS Only few lines of code necessary to write runnable GUI program JavaFX vs HTML5+JavaScript JavaFX competes with HTML+JavaScript. Here is a rough comparison: JavaFX HTML5+JavaScript + One framework Many frameworks with multiple parts requires Gluon to run on Android or + Runs everywhere ios + Strongly typed, nice language JavaScript messy language + Perfect for large projects + Perfect for small projects Future?? Oracle, open source High turnover of frameworks Basic concepts JavaFX consists of about 30 packages, such as: javafx.application javafx.stage javafx.scene javafx.scene.layout... JavaFX is built around the metaphor of a Stage that is a space in which stuff happens, that is, in which a Scene is presented.

4 4 Advanced Java for Bioinformatics, WS 17/18, D. Huson, November 8, 2017 Window on laptop is Stage Content shown in window is Scene A JavaFX Stage is a top level container such as a window. A Scene contains items that make up the scene, such as layout items, controls, text and graphical objects. To create a scene, add elements of the class Scene. Then, set the scene on a stage by adding the Scene object to an instance of Stage. Any JavaFX application has at least one stage and one scene Nodes and the scene graph Elements of a scene are called nodes, and extend the Node class. For example, a Button is a node. Some nodes can have one or more children. A node that can have childern extends Parent. The scene is represented by a tree of nodes, called the scene graph. There is one special node in the scene graph called the root, which has no parent. All other nodes in the scene graph have exactly one parent, which is contained in the scene graph. Any given node can occur at most once in any scene graph. As mentioned, Node is the base class for all nodes, e.g. Button extends Node. Other examples of extensions of Node are Parent, Group, Region or Control, and many more Layout nodes Simple controls such as buttons, checkboxes etc usually cannot be parents of other nodes and thus appear as leaves of the scene graph. There are a number of types of nodes that used to manage the placement of elements in a scene and these usually appear as internal nodes of the scene graph. Examples: FlowPane: a flow layout GridPane: grid-based layouty BorderPane: four borders and a center. All are extensions of Node and are contained in javafx.scene.layout.

5 Advanced Java for Bioinformatics, WS 17/18, D. Huson, November 8, Application class and life-cycle methods A JavaFX application extends the class Application, e.g. public class HelloWorld extends Application {... There are three methods in Application that you can overwrite: void init() abstract void start (Stage primarystage) void stop() init() is called at start up so that you can initialize stuff, but it is called outside of JavaFX, so can t be used to init the scene or stage. start() is called after init() and from within JavaFX. This is where you setup the scene and place it onto the stage. This method is abstract and so you must overwrite it. The stop() method is called from within JavaFX when the application is terminating and you can clean up here. When running a JavaFX application in a IDE, then no additional methods are required. However, for the sake of explicitness, you can add the following: public static void main (String[] args) { Application.launch(args); 2.2 JavaFX Hello World Here is a complete JavaFX program: public class HelloWorld extends A p p l i c a t i o n { public void s t a r t ( Stage primarystage ) throws Exception { FlowPane root = new FlowPane ( ) ; scene = new Scene ( root, 300, ) ; root. getchildren ( ). add (new Text ( Hello World ) ) ; primarystage. s e t S c e n e ( scene ) ; primarystage. show ( ) ; Here we have added a bye button that exits the program: public class HelloWorld extends A p p l i c a t i o n { public void s t a r t ( Stage primarystage ) throws Exception { FlowPane root = new FlowPane ( ) ; scene = new Scene ( root, 300, ) ; root. getchildren ( ). add (new Text ( H ello World ) ) ; Button button = new Button ( Bye ) ; button. setonaction ( e > Platform. e x i t ( ) ) ; root. getchildren ( ). add ( button ) ; primarystage. s e t S c e n e ( scene ) ; primarystage. show ( ) ;

6 6 Advanced Java for Bioinformatics, WS 17/18, D. Huson, November 8, JavaFX Application Thread You can t init the scene or stage in init() because this method is called in the Java Launcher Thread. The start() and stop() methods are called in the JavaFX Application Thread. Changes to the scene graph are only allowed from the Application Thread. You can call the following method to determine whether you are currently in the Application Thread: Platform.isFxApplicationThread(); 2.4 Defining the scene graph To define the scene graph, you first setup a root node root, which is usually a Layout object, and then supply this node to the Scene. The method root.getchildren() returns the list of children of the node. The return type is ObservableList<Node>, which is an extension of the Java class List<>. An ObservableList notifies registered listeners about changes to the list. Once you have a root node, you add children to the root node as follows: root.getchildren().add(helloworldlabel); root.getchildren().add(byebutton); where helloworldlabel and byebutton are instances of a Label and Button node, say. To remove a node (and all its descendants, if it has any) from a scene, remove it from its parent s list of children, e.g.: root.getchildren().remove(helloworldlabel);

7 Advanced Java for Bioinformatics, WS 17/18, D. Huson, November 8, Events and Controls Events are used to notify your application of actions taken by the user so that the application can respond to the event. JavaFX uses the delegation event model. Pressing a button, say, generates an event and this is delegated to an event handler. For example, here we a setup a handler for a button pressed event: Button button=new new Button("Bye"); button.setonaction((e)->platform.exit()); Use setonaction() to setup a handler for button pressed events. You will usually add event handlers to many of the nodes in your scene graph. Many nodes will be given multiple handlers for different types of events, such as mouse pressed, or mouse moved or swipped left. 3.1 The event dispatch chain When an event is generated, e.g. the user clicks the mouse on the window displaying the scene, then JavaFX has to determine the node whose event handler must handle the event. There may be more than one such node. JavaFX determines an event dispatch chain that is a path from the scene, through the root node to the target node of the even, e.g. a button: Click! scene flow pane Bye button 3.2 the event dispatch chain event handling has two phases: 1. Event capture: the event is passed down the event dispatch chain until the deepest node is found that wants to handle the event. The event is then handled. 2. Event bubbling: the event is passed back up the chain to give parent nodes the chance to handle it. An event handler can consume an event by calling event.consume(), in which case bubbling ceases. As an example of the use of event bubbling, imagine that you want to count all clicks that occur anywhere in a scene (but not on a button, as buttons consume mouse pressed events).

8 8 Advanced Java for Bioinformatics, WS 17/18, D. Huson, November 8, Handling events Above we saw an example of using setonaction() to setup a handler for a button-pressed event. There are many other such methods such as setonswipeleft(), setonmousepressed(), setoncontextmenurequested() etc. Use an instance of EventHandler<T extends Event> to handle events, in a number of ways, e.g.: as an anonymous for each handler, as a lambda expression for each handler, or as a single instancxe of a class that is used for multiple handlers. 3.4 Controls As discussed above, a simple push button control is given by the Button class. This extends or implements ButtonBase, Labeled, Region, Control, Parent and Node. Simplest way to use this: Button button=new Button("Bye"); button.setonaction((e)->...); Check box As another example, CheckBox extends ButtonBase and is a button that can be not selected, selected, or indeterminate. Selection: isselected() and setselected(boolean value) To allow an indeterminate state, use setallowindeterminate(boolean value) and use these methods to get and set: isindeterminate() and setindeterminate(boolean value) Key and mouse events The classes Node and Scene provide a number of methods for defining handlers for key and mouse events, such as: setonkeypressed(...) setonkeyreleased(...) setonkeytyped(...)... setonmouseentered(...) setonmouseclicked(...) setonmousemoved(...)... When called, a handler is given an instance of an Event that contains details of the event. For example, a MouseEvent has methods such as getbutton(), getclickcount(), getscenex(), getsceney(),... The following code could be used to monitor mouse clicks and entry events in the scene:

9 Advanced Java for Bioinformatics, WS 17/18, D. Huson, November 8, scene. setonmouseclicked ( ( e ) > { MouseButton mousebutton = e. getbutton ( ) ; System. e r r. p r i n t l n ( Clicked, Button : + mousebutton ) ; int c l i c k s = e. getclickcount ( ) ; System. e r r. p r i n t l n ( C l i c k s : + c l i c k s ) ; ) ; scene. setonmouseentered ( ( e ) > { MouseButton mousebutton = e. getbutton ( ) ; System. e r r. p r i n t l n ( Entered, Button : + mousebutton ) ; int c l i c k s = e. getclickcount ( ) ; System. e r r. p r i n t l n ( C l i c k s : + c l i c k s ) ; ) ;

https://www.eclipse.org/efxclipse/install.html#for-the-lazy

https://www.eclipse.org/efxclipse/install.html#for-the-lazy CSC40232: SOFTWARE ENGINEERING Professor: Jane Cleland Huang Lecture 4: Getting Started with Java FX Wednesday, January 30 th and February 1 st sarec.nd.edu/courses/se2017 Department of Computer Science

More information

Event Handling in JavaFX

Event Handling in JavaFX Event Handling in JavaFX Event Driven Programming Graphics applications use events. An event dispatcher receives events and notifies interested objects. Event Listener Event EventQueue 1. ActionEvent 2.

More information

46 Advanced Java for Bioinformatics, WS 17/18, D. Huson, December 21, 2017

46 Advanced Java for Bioinformatics, WS 17/18, D. Huson, December 21, 2017 46 Advanced Java for Bioinformatics, WS 17/18, D. Huson, December 21, 2017 11 FXML and CSS A program intended for interactive use may provide a large number of user interface (UI) components, as shown

More information

C14: JavaFX: Overview and Programming User Interface

C14: JavaFX: Overview and Programming User Interface CISC 3120 C14: JavaFX: Overview and Programming User Interface Hui Chen Department of Computer & Information Science CUNY Brooklyn College 10/10/2017 CUNY Brooklyn College 1 Outline Recap and issues Architecture

More information

c 2017 All rights reserved. This work may be distributed or shared at no cost, but may not be modified.

c 2017 All rights reserved. This work may be distributed or shared at no cost, but may not be modified. Introduction to JavaFX for Beginner Programmers Robert Ball, Ph.D. August 16, 2017 Version 0.1.4 c 2017 All rights reserved. This work may be distributed or shared at no cost, but may not be modified.

More information

C12: JavaFX Scene Graph, Events, and UI Components

C12: JavaFX Scene Graph, Events, and UI Components CISC 3120 C12: JavaFX Scene Graph, Events, and UI Components Hui Chen Department of Computer & Information Science CUNY Brooklyn College 3/12/2018 CUNY Brooklyn College 1 Outline Recap and issues JavaFX

More information

Beautiful User Interfaces with JavaFX

Beautiful User Interfaces with JavaFX Beautiful User Interfaces with JavaFX Systémes d acquisition 3EIB S. Reynal September 20, 2017 The current document is dedicated to giving you a small and quick insight into the JavaFX API, an extra Java

More information

C15: JavaFX: Styling, FXML, and MVC

C15: JavaFX: Styling, FXML, and MVC CISC 3120 C15: JavaFX: Styling, FXML, and MVC Hui Chen Department of Computer & Information Science CUNY Brooklyn College 10/19/2017 CUNY Brooklyn College 1 Outline Recap and issues Styling user interface

More information

Multimedia-Programmierung Übung 3

Multimedia-Programmierung Übung 3 Multimedia-Programmierung Übung 3 Ludwig-Maximilians-Universität München Sommersemester 2015 JavaFX Version 8 What is JavaFX? Recommended UI-Toolkit for Java 8 Applications (like e.g.: Swing, AWT) Current

More information

10 Advanced Java for Bioinformatics, WS 17/18, D. Huson, October 26, 2017

10 Advanced Java for Bioinformatics, WS 17/18, D. Huson, October 26, 2017 10 Advanced Java for Bioinformatics, WS 17/18, D. Huson, October 26, 2017 4 Controls Controls facilitate user input and in JavaFX they extend the class Control. controls: Here are some basic Button CheckBox

More information

CO Java SE 7: Develop Rich Client Applications

CO Java SE 7: Develop Rich Client Applications CO-67230 Java SE 7: Develop Rich Client Applications Summary Duration 5 Days Audience Application Developers, Java Developer, Java EE Developer Level Professional Technology Java SE 7 Delivery Method Instructor-led

More information

Event-Driven Programming with GUIs. Slides derived (or copied) from slides created by Rick Mercer for CSc 335

Event-Driven Programming with GUIs. Slides derived (or copied) from slides created by Rick Mercer for CSc 335 Event-Driven Programming with GUIs Slides derived (or copied) from slides created by Rick Mercer for CSc 335 Event Driven GUIs A Graphical User Interface (GUI) presents a graphical view of an application

More information

Java Foundations. 9-1 Introduction to JavaFX. Copyright 2014, Oracle and/or its affiliates. All rights reserved.

Java Foundations. 9-1 Introduction to JavaFX. Copyright 2014, Oracle and/or its affiliates. All rights reserved. Java Foundations 9-1 Copyright 2014, Oracle and/or its affiliates. All rights reserved. Objectives This lesson covers the following objectives: Create a JavaFX project Explain the components of the default

More information

C16a: Model-View-Controller and JavaFX Styling

C16a: Model-View-Controller and JavaFX Styling CISC 3120 C16a: Model-View-Controller and JavaFX Styling Hui Chen Department of Computer & Information Science CUNY Brooklyn College 3/28/2018 CUNY Brooklyn College 1 Outline Recap and issues Model-View-Controller

More information

1. (5 points) In your own words, describe what an instance is.

1. (5 points) In your own words, describe what an instance is. SE1021 Exam 2 Name: 1. (5 points) In your own words, describe what an instance is. 2. (5 points) Consider the Apple class in the UML diagram on the right. Write a couple lines of code to call the instance

More information

COMP6700/2140 Scene Graph, Layout and Styles

COMP6700/2140 Scene Graph, Layout and Styles COMP6700/2140 Scene Graph, Layout and Styles Alexei B Khorev and Josh Milthorpe Research School of Computer Science, ANU May 2017 Alexei B Khorev and Josh Milthorpe (RSCS, ANU) COMP6700/2140 Scene Graph,

More information

COMP6700/2140 GUI and Event Driven Programming

COMP6700/2140 GUI and Event Driven Programming COMP6700/2140 GUI and Event Driven Programming Alexei B Khorev and Josh Milthorpe Research School of Computer Science, ANU April 2017 Alexei B Khorev and Josh Milthorpe (RSCS, ANU) COMP6700/2140 GUI and

More information

interactive systems graphical interfaces Week 2 : a. Intro to JavaFX Programming of Interactive Systems

interactive systems graphical interfaces Week 2 : a. Intro to JavaFX Programming of Interactive Systems Programming of Interactive Systems Anastasia.Bezerianos@lri.fr Week 2 : a. Intro to JavaFX Anastasia.Bezerianos@lri.fr (part of this class is based on previous classes from Anastasia, and of T. Tsandilas,

More information

Proctors are unable to respond to queries about the interpretation of exam questions. Do your best to answer exam questions as written.

Proctors are unable to respond to queries about the interpretation of exam questions. Do your best to answer exam questions as written. QUEEN'S UNIVERSITY SCHOOL OF COMPUTING HAND IN Answers Are Recorded on Question Paper CISC124, FALL TERM, 2015 FINAL EXAMINATION 7pm to 10pm, 15 DECEMBER 2015 Instructor: Alan McLeod If the instructor

More information

Proctors are unable to respond to queries about the interpretation of exam questions. Do your best to answer exam questions as written.

Proctors are unable to respond to queries about the interpretation of exam questions. Do your best to answer exam questions as written. QUEEN'S UNIVERSITY SCHOOL OF COMPUTING HAND IN Answers Are Recorded on Exam Paper CMPE212, WINTER TERM, 2016 FINAL EXAMINATION 9am to 12pm, 19 APRIL 2016 Instructor: Alan McLeod If the instructor is unavailable

More information

Composite Pattern Diagram. Explanation. JavaFX Subclass Hierarchy, cont. JavaFX: Node. JavaFX Layout Classes. Top-Level Containers 10/12/2018

Composite Pattern Diagram. Explanation. JavaFX Subclass Hierarchy, cont. JavaFX: Node. JavaFX Layout Classes. Top-Level Containers 10/12/2018 Explanation Component has Operation( ), which is a method that applies to all components, whether composite or leaf. There are generally many operations. Component also has composite methods: Add( ), Remove(

More information

JavaFX Basics. Liang, Introduction to Java Programming, Tenth Edition, (c) 2015 Pearson Education, Inc. All rights reserved. 1.

JavaFX Basics. Liang, Introduction to Java Programming, Tenth Edition, (c) 2015 Pearson Education, Inc. All rights reserved. 1. JavaFX Basics rights reserved. 1 Motivations JavaFX is a new framework for developing Java GUI programs. The JavaFX API is an excellent example of how the object-oriented principle is applied. This chapter

More information

Event-Driven Programming

Event-Driven Programming Lecture 10 1 Recall: JavaFX Basics So far we ve learned about some of the basic GUI classes (e.g. shapes, buttons) and how to arrange them in window(s) A big missing piece: interaction To have a GUI interact

More information

Pro JavaFX 2. Weiqi Gao, Ph.D. Stephen Chin. Apress* James L. Weaver. Dean Iverson with Johan Vos, Ph.D.

Pro JavaFX 2. Weiqi Gao, Ph.D. Stephen Chin. Apress* James L. Weaver. Dean Iverson with Johan Vos, Ph.D. Pro JavaFX 2 James L. Weaver Weiqi Gao, Ph.D. Stephen Chin Dean Iverson with Johan Vos, Ph.D. Apress* Contents Foreword About the Authors About the Technical Reviewer Acknowledgments xv xvi xviii xix Chapter

More information

Graphical User Interface (GUI)

Graphical User Interface (GUI) Graphical User Interface (GUI) An example of Inheritance and Sub-Typing 1 Java GUI Portability Problem Java loves the idea that your code produces the same results on any machine The underlying hardware

More information

Graphical User Interface (GUI)

Graphical User Interface (GUI) Graphical User Interface (GUI) An example of Inheritance and Sub-Typing 1 Java GUI Portability Problem Java loves the idea that your code produces the same results on any machine The underlying hardware

More information

Java FX GUI. Pieter van den Hombergh. May 31, Fontys Hogeschool voor Techniek en Logistiek. Java FX GUI. Pieter van den Homb

Java FX GUI. Pieter van den Hombergh. May 31, Fontys Hogeschool voor Techniek en Logistiek. Java FX GUI. Pieter van den Homb ergh Fontys Hogeschool voor Techniek en Logistiek May 31, 2016 ergh/fhtenl May 31, 2016 1/10 JAVA FX Application A java fx gui application uses a different way to start. A javafx application extends javafx.application.application

More information

Week 12 Thursday. For milestone #2 and #3, also submit a screenshot of your GUI once it is launched.

Week 12 Thursday. For milestone #2 and #3, also submit a screenshot of your GUI once it is launched. Week 12 Thursday D-Teams have been created Create your A-Team by Friday, or let me know to assign you earlier. Team Project: Tournament-Bracket (D-Team 30 pts) Milestone #1: due before 10pm THIS Friday,

More information

CST141 JavaFX Basics Page 1

CST141 JavaFX Basics Page 1 CST141 JavaFX Basics Page 1 1 2 5 6 7 8 9 10 JavaFX Basics CST141 Console vs. Window Programs In Java there is no distinction between console programs and window programs Java applications can mix (combine)

More information

GUI Basics. Object Orientated Programming in Java. Benjamin Kenwright

GUI Basics. Object Orientated Programming in Java. Benjamin Kenwright GUI Basics Object Orientated Programming in Java Benjamin Kenwright Outline Essential Graphical User Interface (GUI) Concepts Libraries, Implementation, Mechanics,.. Abstract Windowing Toolkit (AWT) Java

More information

Essential JavaFX. Using layouts. Panes in JavaFX. Layouts. Tobias Andersson Gidlund LAYOUTS

Essential JavaFX. Using layouts. Panes in JavaFX. Layouts. Tobias Andersson Gidlund LAYOUTS Essential JavaFX Tobias Andersson Gidlund tobias.andersson.gidlund@lnu.se November 15, 2012 Essential JavaFX 1(36) LAYOUTS Essential JavaFX 2(36) Using layouts Since JavaFX still is Java, the use of layout

More information

1. Instructions for Accessing the FamilyTreeApp Code

1. Instructions for Accessing the FamilyTreeApp Code FamilyTreeApp Download the source for the reference application (described briefly in Family TreeApp Reference Application on page 10 of our book) at https://java.net/ projects/nbfamilytreeapp. 1. Instructions

More information

GUI Programming. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies

GUI Programming. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies A Fresh Graduate s Guide to Software Development Tools and Technologies Chapter 12 GUI Programming CHAPTER AUTHORS Ang Ming You Ching Sieh Yuan Francis Tam Pua Xuan Zhan Software Development Tools and

More information

JavaFX Scene Builder

JavaFX Scene Builder JavaFX Scene Builder User Guide Release 2.0 E51279-01 April 2014 This user guide introduces you to and describes how to use the JavaFX Scene Builder features and graphical user interface (GUI). JavaFX

More information

Throughout the exam, write concisely and underline key words or phrases. Have fun! Exam 2. Week 7 (Winter 2013). Dr. Yoder. Sec 031.

Throughout the exam, write concisely and underline key words or phrases. Have fun! Exam 2. Week 7 (Winter 2013). Dr. Yoder. Sec 031. SE1021 Exam 2 Name: You may have an 8.5x11 note sheet for this exam. No calculators or other study aids on this exam. Write your initials at the tops of the following pages and read through the exam before

More information

Building Graphical user interface using JavaFX

Building Graphical user interface using JavaFX CS244 Advanced programming Applications Building Graphical user interface using JavaFX Dr Walid M. Aly Lecture 6 JavaFX vs Swing and AWT When Java was introduced, the GUI classes were bundled in a library

More information

Quick & Easy Desktop Development with NetBeans and its HTML/JAVA API

Quick & Easy Desktop Development with NetBeans and its HTML/JAVA API Quick & Easy Desktop Development with NetBeans and its HTML/JAVA API Ioannis (John) Kostaras FOSDEM 2-3 February 2019 FOSDEM 2019 API Ioannis Kostaras 1 Context (Apache) NetBeans Rich Client Platform Desktop

More information

CS 349 / SE 382 Design Patterns. Professor Michael Terry January 21, 2009

CS 349 / SE 382 Design Patterns. Professor Michael Terry January 21, 2009 CS 349 / SE 382 Design Patterns Professor Michael Terry January 21, 2009 Today s Agenda More demos! Design patterns CS 349 / SE 382 / 2 Announcements Assignment 1 due Monday at 5PM! CS 349 / SE 382 / 3

More information

Java Programming. Events and Listeners

Java Programming. Events and Listeners Java Programming Events and Listeners Alice E. Fischer April 19, 2015 Java Programming - Events and Listenersldots 1/12 Events and Listeners An event is generated when The user clicks a GUI button or CheckBox

More information

CSCI-142 Exam 2 Review September 25, 2016 Presented by the RIT Computer Science Community

CSCI-142 Exam 2 Review September 25, 2016 Presented by the RIT Computer Science Community CSCI-142 Exam 2 Review September 25, 2016 Presented by the RIT Computer Science Community http://csc.cs.rit.edu 1. Suppose we are talking about the depth-first search (DFS) algorithm. Nodes are added to

More information

Whether to Include Java 8 Features in Introductory CS Courses

Whether to Include Java 8 Features in Introductory CS Courses CCSC Eastern Conference 2015 Tutorial Whether to Include Java 8 Features in Introductory CS Courses James Heliotis Computer Science Rochester Inst. of Technology jeh@cs.rit.edu 1 Our History in Java Education

More information

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

Module 4 Multi threaded Programming, Event Handling. OOC 4 th Sem, B Div Prof. Mouna M. Naravani Module 4 Multi threaded Programming, Event Handling OOC 4 th Sem, B Div 2016-17 Prof. Mouna M. Naravani Event Handling Any program that uses a graphical user interface, such as a Java application written

More information

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad - 500 043 Course Title Course Code Regulation COMPUTER SCIENCE AND ENGINEERING COURSE DESCRIPTION FORM JAVA PROGRAMMING A40503 R15-JNTUH

More information

Graphical User Interfaces (GUIs)

Graphical User Interfaces (GUIs) CMSC 132: Object-Oriented Programming II Graphical User Interfaces (GUIs) Department of Computer Science University of Maryland, College Park Model-View-Controller (MVC) Model for GUI programming (Xerox

More information

CON Visualising GC with JavaFX Ben Evans James Gough

CON Visualising GC with JavaFX Ben Evans James Gough CON6265 - Visualising GC with JavaFX Ben Evans (@kittylyst) James Gough (@javajimlondon) Who are these guys anyway? Beginnings This story, as with so many others, starts with beer... Beginnings It was

More information

(Incomplete) History of GUIs

(Incomplete) History of GUIs CMSC 433 Programming Language Technologies and Paradigms Spring 2004 Graphical User Interfaces April 20, 2004 (Incomplete) History of GUIs 1973: Xerox Alto 3-button mouse, bit-mapped display, windows 1981:

More information

Input (part 2: input models)

Input (part 2: input models) Input (part 2: input models) Dealing with diversity Saw lots of diversity in devices actual details of devices (e.g., device drivers) is a real pain how do we deal with the diversity? Need a model (abstraction)

More information

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

Module 4 Multi threaded Programming, Event Handling. OOC 4 th Sem, B Div Prof. Mouna M. Naravani Module 4 Multi threaded Programming, Event Handling OOC 4 th Sem, B Div 2017-18 Prof. Mouna M. Naravani Event Handling Complete Reference 7 th ed. Chapter No. 22 Event Handling Any program that uses a

More information

CPS221 Lecture: Threads

CPS221 Lecture: Threads Objectives CPS221 Lecture: Threads 1. To introduce threads in the context of processes 2. To introduce UML Activity Diagrams last revised 9/5/12 Materials: 1. Diagram showing state of memory for a process

More information

Chapter 14 JavaFX Basics. Liang, Introduction to Java Programming, Tenth Edition, (c) 2015 Pearson Education, Inc. All rights reserved.

Chapter 14 JavaFX Basics. Liang, Introduction to Java Programming, Tenth Edition, (c) 2015 Pearson Education, Inc. All rights reserved. Chapter 14 JavaFX Basics 1 Motivations JavaFX is a new framework for developing Java GUI programs. The JavaFX API is an excellent example of how the object-oriented principle is applied. This chapter serves

More information

C30c: Model-View-Controller and Writing Larger JavaFX Apps

C30c: Model-View-Controller and Writing Larger JavaFX Apps CISC 3120 C30c: Model-View-Controller and Writing Larger JavaFX Apps Hui Chen Department of Computer & Information Science CUNY Brooklyn College 12/6/2018 CUNY Brooklyn College 1 Outline Model-View-Controller

More information

San Francisco. Clouds in My Coffee: Java on Mobile for ios and Android with Cloud Data. October 23, 2018

San Francisco. Clouds in My Coffee: Java on Mobile for ios and Android with Cloud Data. October 23, 2018 San Francisco October 23, 2018 Clouds in My Coffee: Java on Mobile for ios and Android with Cloud Data Paul Anderson Gail Anderson Anderson Software Group, Inc. asgteach.com 2018 Anderson Software Group

More information

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview. Programming 2 (112) Lecture 0 College of Computer Science and Engineering Taibah University S2, 1439 Outline Important Information Lecture Protocol Subject Overview General Overview Course Objectives Studying

More information

G51PRG: Introduction to Programming Second semester Applets and graphics

G51PRG: Introduction to Programming Second semester Applets and graphics G51PRG: Introduction to Programming Second semester Applets and graphics Natasha Alechina School of Computer Science & IT nza@cs.nott.ac.uk Previous two lectures AWT and Swing Creating components and putting

More information

Basics of Java Programming CS129 LTPC:

Basics of Java Programming CS129 LTPC: Basics of Java Programming CS9 LTPC: -0-4-3 Instructor: Gauravkumarsingh Gaharwar Program: Masters of Science(IT) Class-Semester: FYMSc(IT) (Sem-II) Email: gauravsinghg@nuv.ac.in Phone Number: 065-30000(0)

More information

GUI Output. Adapted from slides by Michelle Strout with some slides from Rick Mercer. CSc 210

GUI Output. Adapted from slides by Michelle Strout with some slides from Rick Mercer. CSc 210 GUI Output Adapted from slides by Michelle Strout with some slides from Rick Mercer CSc 210 GUI (Graphical User Interface) We all use GUI s every day Text interfaces great for testing and debugging Infants

More information

CALEDONIAN COLLEGE OF ENGINEERING, MODULE HANDBOOK. Department of Electrical & Computer Engineering SULTANATE OF OMAN. Module Code

CALEDONIAN COLLEGE OF ENGINEERING, MODULE HANDBOOK. Department of Electrical & Computer Engineering SULTANATE OF OMAN. Module Code Module Code M2G424866 Object Oriented Programming CALEDONIAN COLLEGE OF ENGINEERING, SULTANATE OF OMAN 2018-2019 MODULE HANDBOOK Semester: A Module Leader Shahida T Department of Electrical & Computer

More information

Command-Line Applications. GUI Libraries GUI-related classes are defined primarily in the java.awt and the javax.swing packages.

Command-Line Applications. GUI Libraries GUI-related classes are defined primarily in the java.awt and the javax.swing packages. 1 CS257 Computer Science I Kevin Sahr, PhD Lecture 14: Graphical User Interfaces Command-Line Applications 2 The programs we've explored thus far have been text-based applications A Java application is

More information

G51PGP Programming Paradigms. Lecture 009 Concurrency, exceptions

G51PGP Programming Paradigms. Lecture 009 Concurrency, exceptions G51PGP Programming Paradigms Lecture 009 Concurrency, exceptions 1 Reminder subtype polymorphism public class TestAnimals public static void main(string[] args) Animal[] animals = new Animal[6]; animals[0]

More information

JavaFX. Getting Started with JavaFX Scene Builder Release 1.1 E

JavaFX. Getting Started with JavaFX Scene Builder Release 1.1 E JavaFX Getting Started with JavaFX Scene Builder Release 1.1 E25448-03 October 2013 JavaFX Getting Started with JavaFX Scene Builder, Release 1.1 E25448-03 Copyright 2012, 2013 Oracle and/or its affiliates.

More information

JavaFX fundamentals. Tecniche di Programmazione A.A. 2012/2013

JavaFX fundamentals. Tecniche di Programmazione A.A. 2012/2013 JavaFX fundamentals Tecniche di Programmazione Summary 1. Application structure 2. The Scene Graph 3. Events 4. Properties and Bindings 2 Application structure Introduction to JavaFX 4 Separation of concerns

More information

CS 112 Programming 2. Lecture 14. Event-Driven Programming & Animations (1) Chapter 15 Event-Driven Programming and Animations

CS 112 Programming 2. Lecture 14. Event-Driven Programming & Animations (1) Chapter 15 Event-Driven Programming and Animations CS 112 Programming 2 Lecture 14 Event-Driven Programming & Animations (1) Chapter 15 Event-Driven Programming and Animations rights reserved. 2 Motivations Suppose you want to write a GUI program that

More information

Making Apps With JavaFX COMP110 - Lecture 23

Making Apps With JavaFX COMP110 - Lecture 23 Making Apps With JavaFX COMP110 - Lecture 23 COMP110 UTA Applications Have the TAs helped you this semester? Join us and help continue to improve COMP110 in the Spring! Application now open on COMP110.com

More information

Chapter 15 Event-Driven Programming and Animations

Chapter 15 Event-Driven Programming and Animations Chapter 15 Event-Driven Programming and Animations 1 Motivations Suppose you want to write a GUI program that lets the user enter a loan amount, annual interest rate, and number of years and click the

More information

Java Programming Fundamentals

Java Programming Fundamentals Java Programming Fundamentals Course JAVAB Five Days Instructor-led Hands on This five-day, instructor-led course helps any programmer learn Java faster and better than ever before: It's the one Java course

More information

Developing applications using JavaFX

Developing applications using JavaFX Developing applications using JavaFX Cheshta, Dr. Deepti Sharma M.Tech Scholar, Dept. of CSE, Advanced Institute of Technology & Management, Palwal, Haryana, India HOD, Dept. of CSE, Advanced Institute

More information

CSC207 Week 4. Larry Zhang

CSC207 Week 4. Larry Zhang CSC207 Week 4 Larry Zhang 1 Logistics A1 Part 1, read Arnold s emails. Follow the submission schedule. Read the Q&A session in the handout. Ask questions on the discussion board. Submit on time! Don t

More information

Event-driven Programming, Separation of Concerns, the Observer pattern and the JavaFX Event Infrastructure

Event-driven Programming, Separation of Concerns, the Observer pattern and the JavaFX Event Infrastructure Java GUIs in JavaFX Event-driven Programming, Separation of Concerns, the Observer pattern and the JavaFX Event Infrastructure 1 GUIs process inputs and deliver outputs for a computing system Inputs Click

More information

ITT Technical Institute. SD1420 Introduction to Java Programming Onsite and Online Course SYLLABUS

ITT Technical Institute. SD1420 Introduction to Java Programming Onsite and Online Course SYLLABUS ITT Technical Institute SD1420 Onsite and Online Course SYLLABUS Credit hours: 4.5 Contact/Instructional hours: 56 (34 Theory Hours, 22 Lab Hours Prerequisite(s and/or Corequisite(s: Prerequisite: PT1420

More information

Introduction to Graphical Interface Programming in Java. Introduction to AWT and Swing

Introduction to Graphical Interface Programming in Java. Introduction to AWT and Swing Introduction to Graphical Interface Programming in Java Introduction to AWT and Swing GUI versus Graphics Programming Graphical User Interface (GUI) Graphics Programming Purpose is to display info and

More information

Distributed Collaboration - Assignment 1: Multi-View 1-User IM

Distributed Collaboration - Assignment 1: Multi-View 1-User IM Distributed Collaboration - Assignment 1: Multi-View 1-User IM Date Assigned:??? 1-View Target Date:??? Multi-View Submission Date:??? Objectives: Understand the use of observer pattern in user -interface

More information

Java: Graphical User Interfaces (GUI)

Java: Graphical User Interfaces (GUI) Chair of Software Engineering Carlo A. Furia, Marco Piccioni, and Bertrand Meyer Java: Graphical User Interfaces (GUI) With material from Christoph Angerer The essence of the Java Graphics API Application

More information

Merge Sort Quicksort 9 Abstract Windowing Toolkit & Swing Abstract Windowing Toolkit (AWT) vs. Swing AWT GUI Components Layout Managers Swing GUI

Merge Sort Quicksort 9 Abstract Windowing Toolkit & Swing Abstract Windowing Toolkit (AWT) vs. Swing AWT GUI Components Layout Managers Swing GUI COURSE TITLE :Introduction to Programming 2 COURSE PREREQUISITE :Introduction to Programming 1 COURSE DURATION :16 weeks (3 hours/week) COURSE METHODOLOGY:Combination of lecture and laboratory exercises

More information

CSCI 201L Written Exam #1 Fall % of course grade

CSCI 201L Written Exam #1 Fall % of course grade Final Score /15 Name SOLUTION ID Extra Credit /0.5 Lecture Section (circle one): TTh 8:00-9:20 TTh 9:30-10:50 TTh 11:00-12:20 CSCI 201L Written Exam #1 Fall 2017 15% of course grade The exam is one hour

More information

Java Programming Layout

Java Programming Layout Java Programming Layout Alice E. Fischer Feb 22, 2013 Java Programming - Layout... 1/14 Application-Stage-Scene-Pane Basic GUI Construction Java Programming - Layout... 2/14 Application-Stage-Scene Application

More information

Heavyweight with platform-specific widgets. AWT applications were limited to commonfunctionality that existed on all platforms.

Heavyweight with platform-specific widgets. AWT applications were limited to commonfunctionality that existed on all platforms. Java GUI Windows Events Drawing 1 Java GUI Toolkits Toolkit AWT Description Heavyweight with platform-specific widgets. AWT applications were limited to commonfunctionality that existed on all platforms.

More information

Sample Spark Web-App. Overview. Prerequisites

Sample Spark Web-App. Overview. Prerequisites Sample Spark Web-App Overview Follow along with these instructions using the sample Guessing Game project provided to you. This guide will walk you through setting up your workspace, compiling and running

More information

INSTITUTE OF AERONAUTICAL ENGINEERING

INSTITUTE OF AERONAUTICAL ENGINEERING INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) DUNDIGAL, YDERABAD -500 043 Course Title Course Code Regulation INFORMATION TECNOLOGY COURSE DESCRIPTION FORM JAVA PROGRAMMING A40503 R13 JNTU Course

More information

Course Code Course Name Theory Practical Tutorial Theory TW/Practical Tutorial Total. Internal assessment. End Sem. Exam. Avg.

Course Code Course Name Theory Practical Tutorial Theory TW/Practical Tutorial Total. Internal assessment. End Sem. Exam. Avg. Course Code Course Name Theory Practical Tutorial Theory TW/Practical Tutorial Total ITL304 Java Programming Lab -- 2+2* -- -- 2 -- 2 Examination Scheme Theory Marks Course Code Course Name Internal assessment

More information

CS 4300 Computer Graphics

CS 4300 Computer Graphics CS 4300 Computer Graphics Prof. Harriet Fell Fall 2011 Lecture 8 September 22, 2011 GUIs GUIs in modern operating systems cross-platform GUI frameworks common GUI widgets event-driven programming Model-View-Controller

More information

SD Module-1 Advanced JAVA

SD Module-1 Advanced JAVA Assignment No. 4 SD Module-1 Advanced JAVA R C (4) V T Total (10) Dated Sign Title: Transform the above system from command line system to GUI based application Problem Definition: Write a Java program

More information

JavaFX. JavaFX Scene Builder Release Notes Release 2.0 Early Access E

JavaFX. JavaFX Scene Builder Release Notes Release 2.0 Early Access E JavaFX JavaFX Scene Builder Release Notes Release 2.0 Early Access E27533-04 December 2013 JavaFX/JavaFX Scene Builder Release Notes, Release 2.0 Early Access E27533-04 Copyright 2012, 2013 Oracle and/or

More information

Java Swing Introduction

Java Swing Introduction Course Name: Advanced Java Lecture 18 Topics to be covered Java Swing Introduction What is Java Swing? Part of the Java Foundation Classes (JFC) Provides a rich set of GUI components Used to create a Java

More information

SD Module-1 Advanced JAVA. Assignment No. 4

SD Module-1 Advanced JAVA. Assignment No. 4 SD Module-1 Advanced JAVA Assignment No. 4 Title :- Transform the above system from command line system to GUI based application Problem Definition: Write a Java program with the help of GUI based Application

More information

Java Programming. Price $ (inc GST)

Java Programming. Price $ (inc GST) 1800 ULEARN (853 276) www.ddls.com.au Java Programming Length 5 days Price $4235.00 (inc GST) Overview Intensive and hands-on, the course emphasizes becoming productive quickly as a Java application developer.

More information

JavaFX a Crash Course. Tecniche di Programmazione A.A. 2016/2017

JavaFX a Crash Course. Tecniche di Programmazione A.A. 2016/2017 JavaFX a Crash Course Tecniche di Programmazione Key concepts in JavaFX Stage: where the application will be displayed (e.g., a Windows window) Scene: one container of Nodes that compose one page of your

More information

GUI Components: Part 1

GUI Components: Part 1 1 2 11 GUI Components: Part 1 Do you think I can listen all day to such stuff? Lewis Carroll Even a minor event in the life of a child is an event of that child s world and thus a world event. Gaston Bachelard

More information

JavaFX a Crash Course. Tecniche di Programmazione A.A. 2015/2016

JavaFX a Crash Course. Tecniche di Programmazione A.A. 2015/2016 JavaFX a Crash Course Tecniche di Programmazione Key concepts in JavaFX Stage: where the application will be displayed (e.g., a Windows window) Scene: one container of Nodes that compose one page of your

More information

JavaFX. Embedding Swing Content in JavaFX Applications Release 8.0 Developer Preview E

JavaFX. Embedding Swing Content in JavaFX Applications Release 8.0 Developer Preview E JavaFX Embedding Swing Content in JavaFX Applications Release 8.0 Developer Preview E41513-01 September 2013 JavaFX /Embedding Swing Content in JavaFX Applications, Release 8.0 Developer Preview E41513-01

More information

CST242 Concurrency Page 1

CST242 Concurrency Page 1 CST242 Concurrency Page 1 1 2 3 4 5 6 7 9 Concurrency CST242 Concurrent Processing (Page 1) Only computers with multiple processors can truly execute multiple instructions concurrently On single-processor

More information

Proctors are unable to respond to queries about the interpretation of exam questions. Do your best to answer exam questions as written.

Proctors are unable to respond to queries about the interpretation of exam questions. Do your best to answer exam questions as written. QUEEN'S UNIVERSIY SCHOOL O COMPUING HAND IN Answers Are Recorded on Exam Paper CMPE212, WINER ERM, 2016 INAL EXAMINAION 9am to 12pm, 19 APRIL 2016 Instructor: Alan McLeod If the instructor is unavailable

More information

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java.

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java. [Course Overview] The Core Java technologies and application programming interfaces (APIs) are the foundation of the Java Platform, Standard Edition (Java SE). They are used in all classes of Java programming,

More information

Swing: Building GUIs in Java

Swing: Building GUIs in Java Swing: Building GUIs in Java ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland February 13, 2017 Outline 1 Introduction 2 Aside: Inner

More information

Android Apps Development

Android Apps Development NWTP-2018 in Association with EDC IIT-Roorkee National Winter Training program on Android Apps Development Highlights of Android Apps Development Training After completing the Android Development training

More information

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

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

More information

Graphic User Interfaces. - GUI concepts - Swing - AWT

Graphic User Interfaces. - GUI concepts - Swing - AWT Graphic User Interfaces - GUI concepts - Swing - AWT 1 What is GUI Graphic User Interfaces are used in programs to communicate more efficiently with computer users MacOS MS Windows X Windows etc 2 Considerations

More information

Oracle JavaFX. JavaFX Scene Builder User Guide Release 1.1 E

Oracle JavaFX. JavaFX Scene Builder User Guide Release 1.1 E Oracle JavaFX JavaFX Scene Builder User Guide Release 1.1 E25449-03 October 2013 Oracle JavaFX/JavaFX Scene Builder 1.0 Developer Release E25449-03 Copyright 2012, 2013 Oracle and/or its affiliates. All

More information

PROGRAMMIERPRAKTIKUM GRAPHICAL USER INTERFACES. Tobias Witt

PROGRAMMIERPRAKTIKUM GRAPHICAL USER INTERFACES. Tobias Witt PROGRAMMIERPRAKTIKUM GRAPHICAL USER INTERFACES Tobias Witt K.O.-SYSTEM Korrekt Oida! Jeder Student für jeden Meilenstein 1, ½ oder 0 K.O. Erstes K.O. für den Eingangstest ab 15 Punkten (ohne Aufgabe 3)

More information

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

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm } Abstract Window Toolkit Delegates creation and

More information

PESIT Bangalore South Campus

PESIT Bangalore South Campus PESIT Bangalore South Campus 15CS45 : OBJECT ORIENTED CONCEPTS Faculty : Prof. Sajeevan K, Prof. Hanumanth Pujar Course Description: No of Sessions: 56 This course introduces computer programming using

More information