Visualization Program Development Using Java

Total Page:16

File Type:pdf, Size:1020Kb

Visualization Program Development Using Java JAERI-Data/Code 2002-003 Japan Atomic Energy Research Institute - (x 319-1195 ^J^*g|55lfi5*-/SWB*J|f^^W^3fFti)) T?1fi^C «k This report is issued irregularly. Inquiries about availability of the reports should be addressed to Research Information Division, Department of Intellectual Resources, Japan Atomic Energy Research Institute, Tokai-mura, Naka-gun, Ibaraki-ken T 319-1195, Japan. © Japan Atomic Energy Research Institute, 2002 JAERI- Data/Code 2002-003 Java \Z w-mm n ( 2002 %. 1 ^ 31 B Java *ffitt, -f >*- —tf—T -7x-x (GUI) •fi3.t>*> Java ff , Java #t : T619-0215 ^^^ 8-1 JAERI-Data/Code 2002-003 Visualization Program Development Using Java Akira SASAKI, Keiko SUTO and Hisashi YOKOTA* Advanced Photon Research Center Kansai Research Establishment Japan Atomic Energy Research Institute Kizu-cho, Souraku-gun, Kyoto-fu ( Received January 31, 2002 ) Method of visualization programs using Java for the PC with the graphical user interface (GUI) is discussed, and applied to the visualization and analysis of ID and 2D data from experiments and numerical simulations. Based on an investigation of programming techniques such as drawing graphics and event driven program, example codes are provided in which GUI is implemented using the Abstract Window Toolkit (AWT). The marked advantage of Java comes from the inclusion of library routines for graphics and networking as its language specification, which enables ordinary scientific programmers to make interactive visualization a part of their simulation codes. Moreover, the Java programs are machine independent at the source level. Object oriented programming (OOP) methods used in Java programming will be useful for developing large scientific codes which includes number of modules with better maintenance ability. Keywords: Java, Visualization, Object Oriented Programming, High Performance Computing •Research Organization for Information Science & Technology JAERI-Data/Code 2002-003 1. \ZCtblz l 2. »1MimffitLX(DJavamm 2 3. Java IZk&nJMik-fu if? l±(Dmi& 4 3. i *~7P^>7bmfii-7°n>fy^>ynm 4 3. 2 JavaBi§tCck5^>higI)!i:/a^A 10 3. 3 Abstract Window Toolkit (AWT) (Dffifa 14 4. 2&7LmMm*7°W7A<Dn$m 19 5. l&K>?yy%i*-7u>f;7A<D^$im 2 6 6. £<h& 5 3 5 4 5 4 Contents 1. Introduction 1 2. Java Language for Visualization 2 3. Designing Program Using Java 4 3. 1 Introduction to the Object Oriented Programming 4 3. 2 Event Driven Programming Using Java 10 3. 3 The Abstract Window Toolkit (AWT) 14 4. Application to a Program for Displaying 2D Image Data 19 5. Application to a Program for Displaying ID Hydrodynamics Data--- 2 6 6. Summary 5 3 Acknowledgment 5 4 References 5 4 JAERI-Data/Code 2002-003 1 . PC PC <D BASIC * PC -* (GUI) - t iffy < o ^IJx.!f Kaleidagraph "Cti, 7, -y a -17if- »L, Kaleidagraph ^ Kaleidagraph Excel -C\ ft¥®ffi %t}tf*>Z>o Igor (± 1 t) &*£&%<?>r~ 9 ? unix gnuplot 75 ^<f$^tL^0 gnuplot (± v Lf 'J 7°)^ awk ^ perl 4t 9^7 h L"C(± ft, AVS tf it\ AVS s, 757 ^ 7 ^ <h, -5 u 1 V7 L - 1 - JAERI-Data/Code 2002-003 2 . L T (7) Java Wl PC ^ tti:ii, si fit Lfc Fortran W U «t -6 7 >f 7*7 U £ ft LT 7°U y ? ggfc Tfalk tfi T V PC Ti PC 7 ? ?- 5 - BASIC i" 640x480 77 ~? l y PC Oft^^^|7l?|p]±1-*Uon-C, #^S#ffti:ffli: Fortran B'i 7 X&feZtitzZ h i>$><3tzo 1984 ^C Macintosh ^?JJ,tl, -fCOfg Llf<b < LT PC C Windows *?^ «t 1 IZ tfl: § < ggffc L ^[2]o Macintosh CO®® li If -y b v y 7°T -f X 7° U >f t Pf if 7 v*W -sir, 7^^ t'^ilLTtfd <t -5 i: •? \Z LT PC li^*7 7 >^-7i-x (GUI) ^H£^=t •? i:i GUI colffflii, -feco PC +P'i Ltitzo - cii: i:, 7°n ^7 A GUI 7°or7A(±, i-f- 7 7 --> 3 Z. t LT, GUI y 7n y \£ a.- M* 4 s<y Y tnif, GUI vrv^Ti* (os) *m% - 2 - JAERI-Data/Code 2002-003 90 -f * , , T?< -y 1ftf-Mt L £, ^ A * J: C * Pascal h ^^imBl^io I) s , GUI ^'^ ililtt- »^n/77i:toTli 1R*fe Ut ic^Ti^ < , ffi ^ #ff 0' Java 7°n Java \±4y >?-^-y \ X'fefrtiZ Z. t £& < S;I v^0 ^ijx.li\ Java W iU|Jf^i;3»A$tL^«^-e$)^ Applet (i, Web - y tl y~yJ+X\ Web P'i^ Applet Java 7 *-|TO Java WBP^> 7-X7°O^*7 A 9 - Y -f ;K7) U, 7°7 7 h 7 t-Ai:f#Liv> Java >*4 F-i^tltl^ JavafSS-Vv> (VM) C ojl), Java Wl§ /«-( ;l/HI£ t >f >^ 7°'J ^W Windows, Macintosh, unix 7 b 7 t-A-ci^i: tz;U h 3- K^Uffnr Windows, Macintosh, unix <7)*p 4 > K7 v^-r A (±-?-;fl-f ft GUI 7° (Abstract Window Toolkit) t ^ n /i y Y- V &A,T*Z. t T\ !: Java t JDKl.3 Java2 hf 2001 ^ II Macintosh <T> OS 9.x t B"''v >li JDK1.1 ES L"CV^V>O Windows Java2 H^ttT-LT C, PC Kfc Visual J++75WS L Java ss Java , Java Ml - 3 - JAERI- Data/Code 2002-003 3. , Java H§[n]7°a f [3-5], ^!; (GUI) ^# t: GUI £ft AWT (Abstract Window Toolkit) ? y 7*y 'J 3. tz (: Fortran77 Fortran77 a \ 2 ^9 V struct vector2 { double x,y; struct vector2 velocity; a=velocity.x; velocity.y=b; calc(velocity); Fortran77 f - f- > 11 o (Common L 7 O -A;U^ h&Uvr- 9 zvt'o<D$\&ili$ ktbx - 4 - JAERI-Data/Code 2002-003 Pascal C, C++, Java ^ - <T> X 1 & :x—f- L7C IE z t t w ffiW3 fc'- L ^ Vector2 Java «t d IZ public class Vector2 { private double xx,yy; Vector2 (){ // constructor xx=0.0; yy=0.0; } public Vector2 mult(double d){ // mathematics Vector2 v=new Vector2() v.xx=d*xx; v.yy=d*yy; return v; public Vector2 sum(Vector2 v){ Vector2 v=new Vector2(); xx=v.x+xx; yy=y-x+yy; return v; } public double prod(Vector2 v){ double val; val=xx*v.xx+yy*v.yy; return val; } public double square(){ double val; val=xx*xx+yy*yy; return val; } public void write(Vector2 v){ // access functions xx=v.x; yy=v.y; } public void write(double x0, double yO){ xx=x0; yy=yo ,- } public double x(){ return xx; } public double y(){ return yy; mmi c JAERI-Data/Code 2002-003 Vector2 ?7>UiN xx t yy mult, sum, prod £#JA 11 h I»£#o0 Java TJi> >A- Vector2 ?7 Vector2 w=new Vector2 () ; Vector2 wO=new Vector2 () Vector2 vvl=new Vector2() double ax,ay,b; w. write (ax, ay) ; wl=w.mult (b) ; wl =w. sum (wO) ; wl = w. prod (wO ) ; Java W new U «t Fortran77 i: ^V\ ~fu f v A ji flX fr c TO malloc fortran77 Java f|t«t7'yx^ Mi new < £4 i "Cj new isjiir b1)iM^X\<*&%Z&$:f£tltz%i&%£'lZ$>tz2>o Java < i , C Hl o Cl^tf- ^ £{RJJ£ tl*») iS LT n n - ^i; public -CK - 6 - JAERI-Data/Code 2002-003 h 7&J#£f<S 7°o z. Z> ff, private t Vector2 ?7 a=v.x(); a=v.xx; private X-t public tflL/:, X (7) e< ; ^ -6 3, Vector2 ^ 7 PJT' O Vector2 ^V'/ new (Vector2()) <7) i t h 7 <7 $ t mi o Fortran77 v-y K write >V? KU1±, Vector2 ^ 7 X <7) public void write(Vector2 v) public void write(double xO, double yO) L tz it <nr\ Wtitfrtofr tfffl - 7 - JAERI-Data/Code 2002-003 t Fortran alf "C & M{i&^M&W?l»75 #*»SH&^O;H&ffiJ£fl&& WJW3 X o Tis ? ^9 «t i i:ft , Vector2 9yZ&&%iLtz Velocity ^7^t Java Tiii^TW«t n class Velocity2 extends Vector2 { double ke; Velocity2(){ ke=0.0; } double kinetic_energy(double mass){ ke=square()/2.0 *raass; return ke; } void write(Velocity vel){ write(vel.x(),vel.y()); Velocity2 vel=new Velocity2 t LT$f LV^Velocity2 Velocity2 vel=new Velocity2(); Velocity2 velO=new Velocity2(); double vx,vy,energy,mass; ( + •&) vel.write(vx,vy); vel.write(velO); vxl=vel.x(); vyl^vel.y(); energy=vel.kinetic_energy(mass); - 8 JAERI-Data/Code 2002-003 t Vector2 (i Velocity2 T* #> & i: H" V \ Velocity2 (i Vector2 (is a 691$) TWS V7KWT*,, public iL < (i protected ff $ tl/c t CO ^ , ii^^^ h;Ki Vector2 Velocity2 ^ y X Off L V^ t, - write(vx,vy)x x(), y()> V 7 Kli, Hcflil^ot Vector2 ?7^>V7 KTJ jiffil^^^^'-Oft^: (kinetic_energy(mass)> V-y K) <i, Velocity2 Velocity2 ^ 7 X write > V y KU Vector2 ^7X(I*^ write x.*V>o -e^T\ Velocity2 V7 L Java ~fu^f 1 -{ Jj )l> J. — *f — j V 9 - 7 x. r- n - h z. biz**? rmm - 9 - JAERI- Data/Code 2002-003 3. 2 Java W 3.2.1) IZ^fy -7i-X (GUI) (OS) \Z htz File a — file ^»tf, / Tirr«{sis 1) 1 20&--U9 2; 1 220e 0<3 3S i C-1DH 09 4) 5 3 0,-0, *tftE+? (jainiwrfit-i 0.90- 0.80" 3 60* 0.70" 0.60- 0.40- Q.30- i.oo- o.atr o.io- IK,, , ... O.OQ 0.0! 0.02 0.03 D.34 0 00 0.0! • 0 02 0.05 0 riemj xl° rkm) l 1 la-: 4B t«r tio« for si cs I si C6 2 ter t.ss for bl t«- tip* for- si .flf t.»a for si C4 3 :«•• i-is*r\ CHK SX [«)} tar- sain and x f/ca ronsition) Hi-lik«e dS4d3iei..6e -s S ti9*pSi01.
Recommended publications
  • Swing: Components for Graphical User Interfaces
    Swing: Components for Graphical User Interfaces Computer Science and Engineering College of Engineering The Ohio State University Lecture 22 GUI Computer Science and Engineering The Ohio State University GUI: A Hierarchy of Nested Widgets Computer Science and Engineering The Ohio State University Visual (Containment) Hierarchy Computer Science and Engineering The Ohio State University Top-level widgets: outermost window (a container) Frame, applet, dialog Intermediate widgets: allow nesting (a container) General purpose Panel, scroll pane, tabbed pane, tool bar Special purpose Layered pane Atomic widgets: nothing nested inside Basic controls Button, list, slider, text field Uneditable information displays Label, progress bar, tool tip Interactive displays of highly formatted information Color chooser, file chooser, tree For a visual (“look & feel”) of widgets see: http://java.sun.com/docs/books/tutorial/uiswing/components Vocabulary: Widgets usually referred to as “GUI components” or simply “components” History Computer Science and Engineering The Ohio State University Java 1.0: AWT (Abstract Window Toolkit) Platform-dependent implementations of widgets Java 1.2: Swing Most widgets written entirely in Java More portable Main Swing package: javax.swing Defines various GUI widgets Extensions of classes in AWT Many class names start with “J” Includes 16 nested subpackages javax.swing.event, javax.swing.table, javax.swing.text… Basic GUI widgets include JFrame, JDialog JPanel, JScrollPane, JTabbedPane,
    [Show full text]
  • UML Ou Merise)
    Présenté par : M. Bouderbala Promotion : 3ème Année LMD Informatique / Semestre N°5 Etablissement : Centre Universitaire de Relizane Année Universitaire : 2020/2021 Elaboré par M.Bouderbala / CUR 1 Elaboré par M.Bouderbala / CUR 2 Croquis, maquette et prototype et après …? Elaboré par M.Bouderbala / CUR 3 système interactif vs. système algorithmique Système algorithmique (fermé) : lit des entrées, calcule, produit un résultat il y a un état final Système interactif (ouvert) : évènements provenant de l’extérieur boucle infinie, non déterministe Elaboré par M.Bouderbala / CUR 4 Problème Nous avons appris à programmer des algorithmes (la partie “calcul”) La plupart des langages de programmation (C, C++, Java, Lisp, Scheme, Ada, Pascal, Fortran, Cobol, ...) sont conçus pour écrire des algorithmes, pas des systèmes interactifs Elaboré par M.Bouderbala / CUR 5 Les Bibliothèques graphique Un widget toolkit ( Boite d'outil de composant d'interface graphique) est une bibliothèque logicielle destinée à concevoir des interfaces graphiques. Fonctionnalités pour faciliter la programmation d’applications graphiques interactives (et gérer les entrées) Windows : MFC (Microsoft Foundation Class), Windows Forms (NET Framework) Mac OS X : Cocoa Unix/Linux : Motif Multiplateforme : Java AWT/Swing, QT, GTK Elaboré par M.Bouderbala / CUR 6 Bibliothèque graphique Une Bibliothèque graphique est une bibliothèque logicielle spécialisée dans les fonctions graphiques. Elle permet d'ajouter des fonctions graphiques à un programme. Ces fonctions sont classables en trois types qui sont apparus dans cet ordre chronologique et de complexité croissante : 1. Les bibliothèques de tracé d'éléments 2D 2. Les bibliothèques d'interface utilisateur 3. Les bibliothèques 3D Elaboré par M.Bouderbala / CUR 7 Les bibliothèques de tracé d'éléments 2D Ces bibliothèques sont également dites bas niveau.
    [Show full text]
  • Flextest Installation Guide
    FlexTest Installation Guide Audience: Administrators profi.com AG Page 1/18 Copyright 2011-2014 profi.com AG. All rights reserved. Certain names of program products and company names used in this document might be registered trademarks or trademarks owned by other entities. Microsoft and Windows are registered trademarks of Microsoft Corporation. DotNetBar is a registered trademark of DevComponents LLC. All other trademarks or registered trademarks are property of their respective owners. profi.com AG Stresemannplatz 3 01309 Dresden phone: +49 351 44 00 80 fax: +49 351 44 00 818 eMail: [email protected] Internet: www.proficom.de Corporate structure Supervisory board chairman: Dipl.-Kfm. Friedrich Geise CEO: Dipl.-Ing. Heiko Worm Jurisdiction: Dresden Corporate ID Number: HRB 23 438 Tax Number: DE 218776955 Page 2/18 Contents 1 Introduction ............................................................................................................................ 4 2 Delivery Content ..................................................................................................................... 5 2.1 FlexTest Microsoft .Net Assemblies .................................................................................. 5 2.2 FlexTest license file ........................................................................................................... 5 2.3 FlexTest registry file .......................................................................................................... 6 2.4 Help .................................................................................................................................
    [Show full text]
  • Abstract Window Toolkit Overview
    In this chapter: • Components • Peers 1 • Layouts • Containers • And the Rest • Summary Abstract Window Toolkit Overview For years, programmers have had to go through the hassles of porting software from BSD-based UNIX to System V Release 4–based UNIX, from OpenWindows to Motif, from PC to UNIX to Macintosh (or some combination thereof), and between various other alternatives, too numerous to mention. Getting an applica- tion to work was only part of the problem; you also had to port it to all the plat- forms you supported, which often took more time than the development effort itself. In the UNIX world, standards like POSIX and X made it easier to move appli- cations between different UNIX platforms. But they only solved part of the prob- lem and didn’t provide any help with the PC world. Portability became even more important as the Internet grew. The goal was clear: wouldn’t it be great if you could just move applications between different operating environments without worr yingabout the software breaking because of a different operating system, win- dowing environment, or internal data representation? In the spring of 1995, Sun Microsystems announced Java, which claimed to solve this dilemma. What started out as a dancing penguin (or Star Trek communicator) named Duke on remote controls for interactive television has become a new paradigm for programming on the Internet. With Java, you can create a program on one platform and deliver the compilation output (byte-codes/class files) to ever yother supported environment without recompiling or worrying about the local windowing environment, word size, or byte order.
    [Show full text]
  • Eclipse (Software) 1 Eclipse (Software)
    Eclipse (software) 1 Eclipse (software) Eclipse Screenshot of Eclipse 3.6 Developer(s) Free and open source software community Stable release 3.6.2 Helios / 25 February 2011 Preview release 3.7M6 / 10 March 2011 Development status Active Written in Java Operating system Cross-platform: Linux, Mac OS X, Solaris, Windows Platform Java SE, Standard Widget Toolkit Available in Multilingual Type Software development License Eclipse Public License Website [1] Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, Ruby (including Ruby on Rails framework), Scala, Clojure, and Scheme. The IDE is often called Eclipse ADT for Ada, Eclipse CDT for C/C++, Eclipse JDT for Java, and Eclipse PDT for PHP. The initial codebase originated from VisualAge.[2] In its default form it is meant for Java developers, consisting of the Java Development Tools (JDT). Users can extend its abilities by installing plug-ins written for the Eclipse software framework, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules. Released under the terms of the Eclipse Public License, Eclipse is free and open source software. It was one of the first IDEs to run under GNU Classpath and it runs without issues under IcedTea. Eclipse (software) 2 Architecture Eclipse employs plug-ins in order to provide all of its functionality on top of (and including) the runtime system, in contrast to some other applications where functionality is typically hard coded.
    [Show full text]
  • Web Development Frameworks Ruby on Rails VS Google Web Toolkit
    Bachelor thesis Web Development Frameworks Ruby on Rails VS Google Web Toolkit Author: Carlos Gallardo Adrián Extremera Supervisor: Welf Löwe Semester: Spring 2011 Course code: 2DV00E SE-391 82 Kalmar / SE-351 95 Växjö Tel +46 (0)772-28 80 00 [email protected] Lnu.se/dfm Abstract Web programming is getting more and more important every day and as a consequence, many new tools are created in order to help developers design and construct applications quicker, easier and better structured. Apart from different IDEs and Technologies, nowadays Web Frameworks are gaining popularity amongst users since they offer a large range of methods, classes, etc. that allow programmers to create and maintain solid Web systems. This research focuses on two different Web Frameworks: Ruby on Rails and Google Web Toolkit and within this document we will examine some of the most important differences between them during a Web development. Keywords web frameworks, Ruby, Rails, Model-View-Controller, web programming, Java, Google Web Toolkit, web development, code lines i List of Figures Figure 2.1. mraible - History of Web Frameworks....................................................4 Figure 2.2. Java BluePrints - MVC Pattern..............................................................6 Figure 2.3. Libros Web - MVC Architecture.............................................................7 Figure 2.4. Ruby on Rails - Logo.............................................................................8 Figure 2.5. Windaroo Consulting Inc - Ruby on Rails Structure.............................10
    [Show full text]
  • The Abstract Window Toolkit (AWT), from Java
    Components Containers and Layout Menus Dialog Windows Event Handling The Abstract Window Toolkit (AWT), from Java : Abstract Window Toolkit Interface to the GUI Interface to platform's components: Layout: Placing GUI event keyboard, window system Buttons, text components handling mouse, … (Win, Mac, …) fields, … Uses operating system components Don't use these! . Looks like a native application . One must sometimes be aware of differences between operating systems… . Small set of components . , … – no table, no color chooser, … The Java Foundation Classes, from Java : Java Foundation Classes (JFC) Java : AWT, Swing More advanced Abstract Window Toolkit graphics classes Components based on pure Java "Painting on the screen" . Won't always look "native”, . The basis of Swing but works identically on all platforms components – and your own . Replaces AWT components, adds more . Discussed next lecture . We still use many other parts of AWT Components: JTable, JButton, … extending JComponent Containers: JFrame – a top level window; JPanel – a part of a window, grouping some components together Layout Managers: Decide how to place components inside containers Swing: Can replace the look and feel dynamically . Nimbus (current Java standard) . Metal (earlier Java standard) . Windows classic Running example: A very simple word processor Ordinary window in Swing: JFrame . A top-level container: Not contained in anything else ▪ AWT Base class for all Swing components Common implementation details Has two states, on/off Radio buttons: Only one per Standard button active at a time Checkbox, on / off Editing styled text: Abstract base class, HTML, RTF, common functionality custom formats A single line of text Multi-line text area Special formatting for Passwords are not shown dates, currency, … as they are entered .
    [Show full text]
  • CDC: Java Platform Technology for Connected Devices
    CDC: JAVA™ PLATFORM TECHNOLOGY FOR CONNECTED DEVICES Java™ Platform, Micro Edition White Paper June 2005 2 Table of Contents Sun Microsystems, Inc. Table of Contents Introduction . 3 Enterprise Mobility . 4 Connected Devices in Transition . 5 Connected Devices Today . 5 What Users Want . 5 What Developers Want . 6 What Service Providers Want . 6 What Enterprises Want . 6 Java Technology Leads the Way . 7 From Java Specification Requests… . 7 …to Reference Implementations . 8 …to Technology Compatibility Kits . 8 Java Platform, Micro Edition Technologies . 9 Configurations . 9 CDC . 10 CLDC . 10 Profiles . 11 Optional Packages . 11 A CDC Java Runtime Environment . 12 CDC Technical Overview . 13 CDC Class Library . 13 CDC HotSpot™ Implementation . 13 CDC API Overview . 13 Application Models . 15 Standalone Applications . 16 Managed Applications: Applets . 16 Managed Applications: Xlets . 17 CLDC Compatibility . 18 GUI Options and Tradeoffs . 19 AWT . 19 Lightweight Components . 20 Alternate GUI Interfaces . 20 AGUI Optional Package . 20 Security . 21 Developer Tool Support . 22 3 Introduction Sun Microsystems, Inc. Chapter 1 Introduction From a developer’s perspective, the APIs for desktop PCs and enterprise systems have been a daunting combination of complexity and confusion. Over the last 10 years, Java™ technology has helped simplify and tame this world for the benefit of everyone. Developers have benefited by seeing their skills become applicable to more systems. Users have benefited from consistent interfaces across different platforms. And systems vendors have benefited by reducing and focusing their R&D investments while attracting more developers. For desktop and enterprise systems, “Write Once, Run Anywhere”™ has been a success. But if the complexities of the desktop and enterprise world seem, well, complex, then the connected device world is even scarier.
    [Show full text]
  • 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 Event Driven Programming April 2017 1 / 12 Topics 1 Graphical User Interface Programming 2 Asynchronous Control-Flow: Event-Driven Programming 3 Java Platform for GUI and Rich Client Programming: Abstract Window Toolkit (AWT) Swing (and Java Foundation Classes) JavaFX 4 JavaFX and Rich Client Applications 5 Scene Graph . Alexei B Khorev and Josh Milthorpe (RSCS, ANU) COMP6700/2140 GUI and Event Driven Programming April 2017 2 / 12 Graphical User Interface Nowadays, all computer programmes which are intended for interaction with the human user are created with Graphical User Interface (while “In the Beginning was Command Line”, by Neal Stephenson). According to Wiki: “allows for interaction with a computer or other media formats which employs graphical images, widgets, along with text to represent the information and actions available to a user. The actions are usually performed through direct manipulation of the graphical elements.” The history of GUI development so far is very worth reading. Since standard computers have a well defined and constrained (less constrained now, after introduction of iPhone and iPad) interface, the type of GUI which can be deployed on them is often called WIMP (window, icon, menu, pointing device). One of the very first GUI as it was created by Xerox 6085 (“Daybreak”) workstation in 1985. It inspired the first mass-produced computer with native GUI — Macintosh, by Apple Comp. As Steve Jobs explained regarding this influence by quoting Picasso: “Ordinary people borrow, real artist steals”.
    [Show full text]
  • Comparative Studies of 10 Programming Languages Within 10 Diverse Criteria
    Department of Computer Science and Software Engineering Comparative Studies of 10 Programming Languages within 10 Diverse Criteria Jiang Li Sleiman Rabah Concordia University Concordia University Montreal, Quebec, Concordia Montreal, Quebec, Concordia [email protected] [email protected] Mingzhi Liu Yuanwei Lai Concordia University Concordia University Montreal, Quebec, Concordia Montreal, Quebec, Concordia [email protected] [email protected] COMP 6411 - A Comparative studies of programming languages 1/139 Sleiman Rabah, Jiang Li, Mingzhi Liu, Yuanwei Lai This page was intentionally left blank COMP 6411 - A Comparative studies of programming languages 2/139 Sleiman Rabah, Jiang Li, Mingzhi Liu, Yuanwei Lai Abstract There are many programming languages in the world today.Each language has their advantage and disavantage. In this paper, we will discuss ten programming languages: C++, C#, Java, Groovy, JavaScript, PHP, Schalar, Scheme, Haskell and AspectJ. We summarize and compare these ten languages on ten different criterion. For example, Default more secure programming practices, Web applications development, OO-based abstraction and etc. At the end, we will give our conclusion that which languages are suitable and which are not for using in some cases. We will also provide evidence and our analysis on why some language are better than other or have advantages over the other on some criterion. 1 Introduction Since there are hundreds of programming languages existing nowadays, it is impossible and inefficient
    [Show full text]
  • Saga of Siblings, Java and C
    From the book “Integration-Ready Architecture and Design” by Cambridge University Press Yefim (Jeff) Zhuk Java and C#: A Saga of Siblings We will also discuss support of integration-ready and knowledge-connected environments that allow for writing application scenarios. In spite of the fact that most examples that support this method are made in Java, similar environments can be created with other languages. Life outside of Java is not as much fun, but it is still possible. This appendix provides examples in which the same function is implemented not in Java but in its easiest replacement – the C–Sharp (C#) language. This lucky child inherited good manners, elegance, style, and even some clothing from its stepfather while enjoying its mother’s care and her rich, vast NETwork. Java and C# are similar in their language structure, functionality, and ideology. Learning from each other and growing stronger in the healthy competition the siblings perfectly serve the software world. Java Virtual Machine and Common Language Runtime. Java compilation produces a binary code according to the Java language specification. This binary code is performed on any platform in which a Java Virtual Machine (JVM) is 1 implemented. The JVM interprets this binary code at run-time, translating the code into specific platform instructions. C# compilation (through Visual Studio. NET) can produce the binary code in Common Intermediate Language (CIL) and save it in a portable execution (PE) file that can then be managed and executed by the Common Language Runtime (CLR). The CLR, which Microsoft refers to as a “managed execution environment,” in a way is similar to JVM.
    [Show full text]
  • Creating Telephony Applications for Both Windows® and Linux
    Application Note Dialogic Research, Inc. Dual OS Applications Creating Telephony Applications for Both Windows® and Linux: Principles and Practice Application Note Creating Telephony Applications for Both Windows® and Linux: Principles and Practice Executive Summary To help architects and programmers who only have experience in a Windows® environment move their telephony applications to Linux, this application note provides information that aims to make the transition easier. At the same time, it takes into account that the original code for Windows may not be abandoned. The ultimate goal is to demonstrate how to create flexible OS-agnostic telephony applications that are easy to build, deploy, and maintain in either environment. Creating Telephony Applications for Both Windows® and Linux: Principles and Practice Application Note Table of Contents Introduction .......................................................................................................... 2 Moving to a Dual Operating System Environment ................................................. 2 CMAKE ......................................................................................................... 2 Boost Jam .................................................................................................... 2 Eclipse .......................................................................................................... 3 Visual SlickEdit ............................................................................................. 3 Using Open Source Portable
    [Show full text]