Static Detection of Brittle Parameter Typing
|
|
- Brent Arnold
- 5 years ago
- Views:
Transcription
1 Static Detection of Brittle Parameter Typing Michael Pradel, Severin Heiniger, and Thomas R. Gross Department of Computer Science ETH Zurich 1
2 Motivation void m(a a) {... } Object A.. B C D E F 2
3 Motivation void m(a a) {... } Object Compatible types A.. B C D E F 2
4 Motivation void m(a a) {... } Object A.. Expected by method B C D E F 2
5 Motivation void m(a a) {... } Object A.. Expected by method Unexpected by method B C D E F 2
6 Example: Swing API (1) JMenu.add(Component) Component JComponent CheckBox AbstractButton JTextField JCheckBox JSeparator JMenuItem JCheckBoxMenuItem JMenu JRadioButtonMenuItem 3
7 Example: Swing API (1) JMenu.add(Component) Expected Component JComponent CheckBox AbstractButton JTextField JCheckBox JSeparator JMenuItem JCheckBoxMenuItem JMenu JRadioButtonMenuItem 3
8 Example: Swing API (1) JMenu.add(Component) Expected Unexpected Component JComponent CheckBox AbstractButton JTextField JCheckBox JSeparator JMenuItem JCheckBoxMenuItem JMenu JRadioButtonMenuItem 3
9 Example: Swing API (1) JMenu.add(Component) Expected Unexpected Component Mismatch between declared JComponent CheckBox type and expected types AbstractButton JTextField JCheckBox JSeparator JMenuItem JCheckBoxMenuItem JMenu JRadioButtonMenuItem 3
10 Example: Swing API (2) Expected argument type: JCheckBoxMenuItem Unexpected argument type: JCheckBox Confirmed as bug: See ntorrent issue #136 4
11 The Problem Brittle parameter type: Has subtypes that are not expected by callee Compatible but unexpected arguments: Subtle errors hidden from the type system 5
12 This Talk Infer from API clients which parameters are brittle and search for unusual argument types 6
13 Overview API clients Static analysis Argument type observations Anomaly detection Warnings about unexpected types 7
14 Overview API clients Static analysis Argument type observations Anomaly detection Warnings about unexpected types 7
15 Static Analysis Goal Find types of arguments given to API methods Two variants Simple: Statically declared type Points-to analysis: Use points-to set of arguments 8
16 Argument Type Observations (1) Client: Foo foo = new Foo(); JLabel label = new JLabel(); api(foo, label); API: void api(object, Component) 9
17 Argument Type Observations (1) Client: Foo foo = new Foo(); JLabel label = new JLabel(); api(foo, label); Simple analysis: Foo JLabel API: void api(object, Component) 9
18 Argument Type Observations (2) Client: Component Button JLabel Foo foo = new Foo(); Component comp; if (...) comp = new JLabel(); else comp = new Button(); api(foo, comp); API: void api(object, Component) 10
19 Argument Type Observations (2) Client: Component Button JLabel Foo foo = new Foo(); Component comp; if (...) comp = new JLabel(); else comp = new Button(); api(foo, comp); Simple analysis: Foo Component API: void api(object, Component) 10
20 Argument Type Observations (2) Client: Component Button JLabel Foo foo = new Foo(); Component comp; if (...) comp = new JLabel(); else comp = new Button(); api(foo, comp); Simple analysis: Foo Imprecision Component API: void api(object, Component) 10
21 Argument Type Observations (2) Client: Component Button JLabel Foo foo = new Foo(); Component comp; if (...) comp = new JLabel(); else comp = new Button(); api(foo, comp); Points-to analysis: Foo JLabel, Button API: void api(object, Component) 10
22 Argument Type Observations (2) Client: Component Button JLabel Foo foo = new Foo(); Component comp; if (...) comp = new JLabel(); else comp = new Button(); api(foo, comp); Points-to analysis: (with confidence) Foo (1.0) JLabel (0.5), Button (0.5) API: void api(object, Component) 10
23 Argument Type Observations (3) Result: Parameter Observations api(object,...) Foo (1.0) api(..., Component) Button (0.5) JLabel (0.5) 11
24 Focus on API Types 1. Generalize client types to API types: Button Foo API type Client-specific type Foo (1.0) Button (1.0) 2. Remove all non-api types 12
25 Merging Observations Merge observations from Different clients of same API Different call sites of same API method Example: Parameter Observations api(object,...) Button (1.0) JList (1.0) Button (0.25)... api(..., Component)... 13
26 Overview API clients Static analysis Argument type observations Anomaly detection Warnings about unexpected types 14
27 Overview API clients Static analysis Argument type observations Anomaly detection Warnings about unexpected types 14
28 Anomaly Detection Goal: Find unexpected arguments given to likely brittle parameters For each parameter: 1. Build type histogram 2. Search anomalies 15
29 Type Histograms JComponent.add(Component, Object) 16
30 Type Histograms JComponent.add(Component, Object) Not a brittle parameter 16
31 Type Histograms (2) Container.add(Component, Object) 17
32 Type Histograms (2) Container.add(Component, Object) Brittle parameter 17
33 Type Histograms (3) JMenu.add(Component) 18
34 Type Histograms (3) JMenu.add(Component) Brittle parameter, two unexpected arguments 18
35 Type Histograms (4) JScrollPane.<init>(Component, int, int) 19
36 Type Histograms (4) JScrollPane.<init>(Component, int, int) Little information 19
37 Finding Anomalies All observations Initial assumption: Each observation = potential anomaly Filters to remove false warnings Warnings If all filters passed: Warning about unexpected argument 20
38 Filtering 21
39 Filtering Initial assumption: All observations are anomalies 21
40 Filtering 21
41 Filtering Whole-histogram filter: Minimum number of observations 21
42 Filtering 21
43 Filtering Whole-histogram filter: Maximum number of types 21
44 Filtering 21
45 Filtering Per-type filter: Minimum Confidence Drop (Does the argument type deviate from an otherwise accepted rule?) 21
46 Filtering 21
47 Filtering Whole-histogram filter: Maximum percentage of anomalies 21
48 Filtering 21
49 Filtering Result: Two anomalies (both are bugs) 21
50 Summary API clients Static analysis Argument type observations Anomaly detection Warnings about unexpected types 22
51 Evaluation 21 programs (650 kloc) AWT/Swing API Bugs - code smells - false positives 23
52 Example: Bug in jedit class FilteredListModel extends AbstractListModel { void setfilter(string filter) { Runnable runner = new Runnable() { public void run() { firecontentschanged(this, 0, getsize()-1); } }; } } Confirmed as a bug and fixed within a day. See bug #
53 Example: Bug in jedit class FilteredListModel extends AbstractListModel { void setfilter(string filter) { Runnable runner = new Runnable() { public void run() { firecontentschanged(this, 0, getsize()-1); } }; } } Confirmed as a bug and fixed within a day. See bug #
54 Example: Bug in jedit class FilteredListModel extends AbstractListModel { void setfilter(string filter) { Runnable runner = new Runnable() { public void run() { firecontentschanged(this, 0, getsize()-1); } }; } } Confirmed as a bug and fixed within a day. See bug #
55 Example: Bug in jedit class FilteredListModel extends AbstractListModel { void setfilter(string filter) { Runnable runner = new Runnable() { public void run() { firecontentschanged(this, 0, getsize()-1); } }; } } Declared: Object Expected: *ListModel Here: Runnable Confirmed as a bug and fixed within a day. See bug #
56 Example: Bug in JFtp... JScrollPane scrollpane = new JScrollPane(list); container.add(new JScrollPane(scrollPane));... Confirmed as a bug and fixed. See bug #
57 Example: Bug in JFtp... JScrollPane scrollpane = new JScrollPane(list); container.add(new JScrollPane(scrollPane));... Declared: Component Expected: JList, JTextArea,... Here: JScrollPane Confirmed as a bug and fixed. See bug #
58 Characteristics of Issues Common to all issues found: Subtle problems (no exception etc.) Visual glitches GUI misbehavior Hard to find with traditional testing 26
59 Precision Default filtering: 47% 5 bugs 4 code smells 10 false positives 27
60 Precision Default filtering: 47% 5 bugs 4 code smells 10 false positives Recall-focused filtering: 11%.. 11 bugs 4 code smells 140 false positives 27
61 Recall Randomly seeded bugs (for known brittle parameters) Default filtering: 83% Recall-focused filtering: 94% 28
62 Influence of Points-to Analysis Benefits of using points-to analysis Find two more bugs (recall-focused configuration, original programs) Increased precision: 76% 83% (default configuration, seeded bugs) 29
63 Influence of Points-to Analysis Benefits of using points-to analysis Find two more bugs (recall-focused configuration, original programs) Increased precision: 76% 83% (default configuration, seeded bugs) Beneficial but not crucial 29
64 Performance Good performance for automatic analysis All 21 programs: 23 minutes 99.9% of time: Static analysis Intel Core 2 Duo with 3.16 GHz, 2.5 GB memory 30
65 Conclusion Powerful analysis that finds subtle errors where traditional testing fails Lessons learned: Brittle parameters: Real problem that deserves attention Simple analysis: Effective in practice Many-client analysis: Key to success 31
66 Thank you! Implementation and experimental data: Static Detection of Brittle Parameter Typing Michael Pradel, Severin Heiniger, and Thomas R. Gross 32
Static Detection of Brittle Parameter Typing
Static Detection of Brittle Parameter Typing Michael Pradel Dept. of Computer Science ETH Zurich, Switzerland Severin Heiniger Dept. of Computer Science ETH Zurich, Switzerland Thomas R. Gross Dept. of
More informationChapter 12 GUI Basics
Chapter 12 GUI Basics 1 Creating GUI Objects // Create a button with text OK JButton jbtok = new JButton("OK"); // Create a label with text "Enter your name: " JLabel jlblname = new JLabel("Enter your
More informationTool Kits, Swing. Overview. SMD158 Interactive Systems Spring Tool Kits in the Abstract. An overview of Swing/AWT
INSTITUTIONEN FÖR Tool Kits, Swing SMD158 Interactive Systems Spring 2005 Jan-28-05 2002-2005 by David A. Carr 1 L Overview Tool kits in the abstract An overview of Swing/AWT Jan-28-05 2002-2005 by David
More informationHandout 14 Graphical User Interface (GUI) with Swing, Event Handling
Handout 12 CS603 Object-Oriented Programming Fall 15 Page 1 of 12 Handout 14 Graphical User Interface (GUI) with Swing, Event Handling The Swing library (javax.swing.*) Contains classes that implement
More informationAutomatic Testing of Sequential and Concurrent Substitutability
Automatic Testing of Sequential and Concurrent Substitutability Michael Pradel and Thomas R. Gross Department of Computer Science ETH Zurich 1 Motivation void bar(foo f) { f.m();... } bar() expects functionality
More informationSwing UI. Powered by Pentalog. by Vlad Costel Ungureanu for Learn Stuff
Swing UI by Vlad Costel Ungureanu for Learn Stuff User Interface Command Line Graphical User Interface (GUI) Tactile User Interface (TUI) Multimedia (voice) Intelligent (gesture recognition) 2 Making the
More informationCS111: PROGRAMMING LANGUAGE II
CS111: PROGRAMMING LANGUAGE II Computer Science Department Lecture 10(b): Working with Controls Agenda 2 Case study: TextFields and Labels Combo Boxes buttons List manipulation Radio buttons and checkboxes
More informationFully Automatic and Precise Detection of Thread Safety Violations
Fully Automatic and Precise Detection of Thread Safety Violations Michael Pradel and Thomas R. Gross Department of Computer Science ETH Zurich 1 Motivation Thread-safe classes: Building blocks for concurrent
More informationOverview. Lecture 7: Inheritance and GUIs. Inheritance. Example 9/30/2008
Overview Lecture 7: Inheritance and GUIs Written by: Daniel Dalevi Inheritance Subclasses and superclasses Java keywords Interfaces and inheritance The JComponent class Casting The cosmic superclass Object
More informationObject-Oriented Programming Design. Topic : User Interface Components with Swing GUI Part III
Electrical and Computer Engineering Object-Oriented Topic : User Interface Components with Swing GUI Part III Maj Joel Young Joel.Young@afit.edu 17-Sep-03 Maj Joel Young Creating GUI Apps The Process Overview
More informationLeveraging Test Generation and Specification Mining for Automated Bug Detection without False Positives
Leveraging Test Generation and Specification Mining for Automated Bug Detection without False Positives Michael Pradel and Thomas R. Gross Department of Computer Science ETH Zurich 1 Motivation API usage
More informationGraphical User Interface (GUI) components in Java Applets. With Abstract Window Toolkit (AWT) we can build an applet that has the basic GUI
CBOP3203 Graphical User Interface (GUI) components in Java Applets. With Abstract Window Toolkit (AWT) we can build an applet that has the basic GUI components like button, text input, scroll bar and others.
More informationGraphical User Interfaces. Swing. Jose Jesus García Rueda
Graphical User Interfaces. Swing Jose Jesus García Rueda Introduction What are the GUIs? Well known examples Basic concepts Graphical application. Containers. Actions. Events. Graphical elements: Menu
More informationSwing. By Iqtidar Ali
Swing By Iqtidar Ali Background of Swing We have been looking at AWT (Abstract Window ToolKit) components up till now. Programmers were not comfortable when doing programming with AWT. Bcoz AWT is limited
More informationSummary Chapter 25 GUI Components: Part 2
1040 Chapter 25 GUI Components: Part 2 ponent on the line. TheJTextField is added to the content pane with a call to our utility method addcomponent (declared at lines 79 83). MethodaddComponent takes
More informationJava Swing. Lists Trees Tables Styled Text Components Progress Indicators Component Organizers
Course Name: Advanced Java Lecture 19 Topics to be covered Java Swing Lists Trees Tables Styled Text Components Progress Indicators Component Organizers AWT to Swing AWT: Abstract Windowing Toolkit import
More informationChapter 13 GUI Basics. Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved.
Chapter 13 GUI Basics 1 Motivations The design of the API for Java GUI programming is an excellent example of how the object-oriented principle is applied. In the chapters that follow, you will learn the
More informationBasics of programming 3. Java GUI and SWING
Basics of programming 3 Java GUI and SWING Complex widgets Basics of programming 3 BME IIT, Goldschmidt Balázs 2 Complex widgets JList elements can be selected from a list JComboBox drop down list with
More informationCSE 1325 Project Description
CSE 1325 Summer 2016 Object-Oriented and Event-driven Programming (Using Java) Instructor: Soumyava Das Graphical User Interface (GUI), Event Listeners and Handlers Project IV Assigned On: 07/28/2016 Due
More informationOutline. Composite Pattern. Model-View-Controller Pattern Callback Pattern
Outline Composite Pattern Motivation Structure Transparent vs Safe composite Applications: AWT & Swing Composite Problems: Alias references Model-View-Controller Pattern Callback Pattern 1 Composite Pattern
More informationCS410G: GUI Programming. The Model/View/Controller Pattern. Model. Controller. View. MVC is a popular architecture for building GUIs
CS410G: GUI Programming The Model/View/Controller design pattern provides a clean distinction between the your application s data (model), your GUI (view), and the how they interact (controller). Many
More informationGoals. Lecture 7 More GUI programming. The application. The application D&D 12. CompSci 230: Semester JFrame subclass: ListOWords
Goals By the end of this lesson, you should: Lecture 7 More GUI programming 1. Be able to write Java s with JTextField, JList, JCheckBox and JRadioButton components 2. Be able to implement a ButtonGroup
More informationGraphics. Lecture 18 COP 3252 Summer June 6, 2017
Graphics Lecture 18 COP 3252 Summer 2017 June 6, 2017 Graphics classes In the original version of Java, graphics components were in the AWT library (Abstract Windows Toolkit) Was okay for developing simple
More informationEvent Driven Programming
Event Driven Programming Part 1 Introduction Chapter 12 CS 2334 University of Oklahoma Brian F. Veale 1 Graphical User Interfaces So far, we have only dealt with console-based programs Run from the console
More informationChapter 12 GUI Basics. Motivations. The design of the API for Java GUI programming
Chapter 12 GUI Basics 1 Motivations The design of the API for Java GUI programming is an excellent example of how the object-orientedoriented principle is applied. In the chapters that follow, you will
More informationGraphical User Interface (Part-3) Supplementary Material for CPSC 233
Graphical User Interface (Part-3) Supplementary Material for CPSC 233 Menu Bars, Menus, and Menu Items A menu is an object of the class JMenu A choice on a menu is called a menu item, and is an object
More informationSketchpad. Plan for Today. Class 22: Graphical User Interfaces IBM 705 (1954) Computer as Clerk : Augmenting Human Intellect
cs2220: Engineering Software Class 22: Graphical User Interfaces Plan for Today History of Interactive Computing Building GUIs in Java Xerox Star Fall 2010 UVa David Evans Design Reviews this week! Univac
More informationLarge-Scale API Protocol Mining for Automated Bug Detection
Large-Scale API Protocol Mining for Automated Bug Detection Michael Pradel Department of Computer Science ETH Zurich 1 Motivation LinkedList pinconnections =...; Iterator i = pinconnections.iterator();
More informationJava 11 Swing with Eclipse Index
One Introduction to Java 1 Usage of Java 2 Structure of Java 4 Flexibility of Java Programming 5 Swing and AWT in Java 7 Using Eclipse 9 Two Dialog Boxes 10 Using Dialog Boxes 11 Using Message Dialogs
More informationJava Swing. based on slides by: Walter Milner. Java Swing Walter Milner 2005: Slide 1
Java Swing based on slides by: Walter Milner Java Swing Walter Milner 2005: Slide 1 What is Swing? A group of 14 packages to do with the UI 451 classes as at 1.4 (!) Part of JFC Java Foundation Classes
More informationSwing. Component overview. Java UI, summer semester 2017/2018 1
Swing Component overview 1 Label class JLabel for displaying short text image both 2 Buttons many kinds of buttons all of them extends AbstractButton regular button (JButton) "click" button toggle button
More informationJava 11 Swing Index. Section Title Page
One Introduction to Java 2 Usage of Java 3 Structure of Java 4 Flexibility of Java Programming 5 Swing and AWT in Java 6 Two Using Java in DOS 9 Using the DOS window 10 DOS Operating System Commands 11
More informationPart 3: Graphical User Interface (GUI) & Java Applets
1,QWURGXFWLRQWR-DYD3URJUDPPLQJ (( Part 3: Graphical User Interface (GUI) & Java Applets EE905-GUI 7RSLFV Creating a Window Panels Event Handling Swing GUI Components ƒ Layout Management ƒ Text Field ƒ
More informationPackages: Putting Classes Together
Packages: Putting Classes Together 1 Introduction 2 The main feature of OOP is its ability to support the reuse of code: Extending the classes (via inheritance) Extending interfaces The features in basic
More informationLearn Java Programming, Dr.Hashamdar. Getting Started with GUI Programming
Learn Java Programming, Dr.Hashamdar Getting Started with GUI Programming 1 Creating GUI Objects // Create a button with text OK JButton jbtok = new JButton("OK"); // Create a label with text "Enter your
More informationJava 1.9 Swing Index
One Introduction to Java 2 Usage of Java 3 Structure of Java 4 Flexibility of Java Programming 5 Swing and AWT in Java 6 Two Using Java in DOS 9 Using the DOS window 10 DOS Operating System Commands 11
More informationGraphics programming. COM6516 Object Oriented Programming and Design Adam Funk (originally Kirill Bogdanov & Mark Stevenson)
Graphics programming COM6516 Object Oriented Programming and Design Adam Funk (originally Kirill Bogdanov & Mark Stevenson) Overview Aims To provide an overview of Swing and the AWT To show how to build
More informationJava 1.8 Swing with Eclipse Oxygen Index
One Introduction to Java 1 Usage of Java 2 Structure of Java 4 Flexibility of Java Programming 5 Using the Eclipse software 6 Swing and AWT in Java 7 Two Running Java in Eclipse 10 Introduction 11 Using
More informationJava 1.8 Swing with Eclipse Mars Index
One Introduction to Java 1 Usage of Java 2 Structure of Java 4 Flexibility of Java Programming 5 Using the Eclipse software 6 Swing and AWT in Java 7 Two Running Java in Eclipse 10 Introduction 11 Using
More informationJava 1.8 Swing with Eclipse Neon Index
One Introduction to Java 1 Usage of Java 2 Structure of Java 4 Flexibility of Java Programming 5 Using the Eclipse software 6 Swing and AWT in Java 7 Two Running Java in Eclipse 10 Introduction 11 Using
More informationChapter 17 Creating User Interfaces
Chapter 17 Creating User Interfaces 1 Motivations A graphical user interface (GUI) makes a system user-friendly and easy to use. Creating a GUI requires creativity and knowledge of how GUI components work.
More informationAdvanced Java Programming. Swing. Introduction to Swing. Swing libraries. Eran Werner, Tel-Aviv University Summer, 2005
Advanced Java Programming Swing Eran Werner, Tel-Aviv University Summer, 2005 19 May 2005 Advanced Java Programming, Summer 2005 1 Introduction to Swing The Swing package is part of the Java Foundation
More informationJava IDE Programming-I
Java IDE Programming-I Graphical User Interface : is an interface that uses pictures and other graphic entities along with text, to interact with user. User can interact with GUI using mouse click/ or
More informationNomen est Omen: Exploring and Exploiting Name Similarities between Arguments and Parameters
Nomen est Omen: Exploring and Exploiting Name Similarities between Arguments and Parameters Hui Liu 1 Qiurong Liu 1 Cristian-Alexandru Staicu 2 Michael Pradel 2 Yue Luo 1 1 Beijing Institute of Technology
More informationDM550 / DM857 Introduction to Programming. Peter Schneider-Kamp
DM550 / DM857 Introduction to Programming Peter Schneider-Kamp petersk@imada.sdu.dk http://imada.sdu.dk/~petersk/dm550/ http://imada.sdu.dk/~petersk/dm857/ GRAPHICAL USER INTERFACES 2 HelloWorld Reloaded
More informationA Simple Text Editor Application
CASE STUDY 7 A Simple Text Editor Application To demonstrate the JTextArea component, fonts, menus, and file choosers we present a simple text editor application. This application allows you to create
More informationJLayeredPane. Depth Constants in JLayeredPane
JLayeredPane Continuing on Swing Components A layered pane is a Swing container that provides a third dimension for positioning components depth or Z order. The class for the layered pane is JLayeredPane.
More informationSD 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 informationOutline. Observer Pattern: Pitfalls. Observer Applications
Outline Observer Pattern: Pitfalls NotifyObservers Invocation Problem M:N Problem ConcurrentModificationException Problem Cyclic Dependency Problem Causality of State Changes Problem Memory Management
More informationSD 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 informationSilkTest Classic. Migrating from the SilkTest Classic Agent to the Open Agent
SilkTest Classic Migrating from the SilkTest Classic Agent to the Open Agent Borland Software Corporation 4 Hutton Centre Dr., Suite 900 Santa Ana, CA 92707 Copyright 2010 Micro Focus (IP) Limited. All
More informationObject Oriented Programming
Object Oriented Programming 1. Graphical User Interfaces OOP10 - M. Joldoş - T.U. Cluj 1 GUI A Graphical User Interface (GUI pronounced "goo-ee") presents a userfriendly mechanism for interacting with
More informationTypeDevil: Dynamic Type Inconsistency Analysis for JavaScript
TypeDevil: Dynamic Type Inconsistency Analysis for JavaScript Michael Pradel 1, Parker Schuh 2, Koushik Sen 2 1 TU Darmstadt, 2 UC Berkeley 1 Motivation JavaScript: Dynamic and permissive Problems remain
More informationPROGRAMMING DESIGN USING JAVA (ITT 303) Unit 7
PROGRAMMING DESIGN USING JAVA (ITT 303) Graphical User Interface Unit 7 Learning Objectives At the end of this unit students should be able to: Build graphical user interfaces Create and manipulate buttons,
More informationContents Introduction 1
SELF-STUDY iii Introduction 1 Course Purpose... 1 Course Goals...1 Exercises... 2 Scenario-Based Learning... 3 Multimedia Overview... 3 Assessment... 3 Hardware and Software Requirements... 4 Chapter 1
More informationImplementing Graphical User Interfaces
Chapter 6 Implementing Graphical User Interfaces 6.1 Introduction To see aggregation and inheritance in action, we implement a graphical user interface (GUI for short). This chapter is not about GUIs,
More information1.1 GUI. JFrame. import java.awt.*; import javax.swing.*; public class XXX extends JFrame { public XXX() { // XXX. init() main() public static
18 7 17 1 1.1 GUI ( ) GUI ( ) JFrame public class XXX extends JFrame { public XXX() { // XXX // init()... // ( )... init() main() public static public class XXX extends JFrame { public XXX() { // setsize(,
More informationSystems Programming Graphical User Interfaces
Systems Programming Graphical User Interfaces Julio Villena Román (LECTURER) CONTENTS ARE MOSTLY BASED ON THE WORK BY: José Jesús García Rueda Systems Programming GUIs based on Java
More information// Class used to hold a list of Strings interpreted as web site addresses. public class URLList {
Question 1. The analysis of Ethernet performance in the paper by Metcalfe and Boggs makes the simplifying assumption that each computer will transmit during a given slot with probability 1 N where N is
More informationuser-friendly and easy to use.
Java Graphic User Interface GUI Basic Dr. Umaporn Supasitthimethee Computer Programming II -2- Java GUI A graphical user interface (GUI) makes a system user-friendly and easy to use. Creating a GUI requires
More information2110: GUIS: Graphical User Interfaces
2110: GUIS: Graphical User Interfaces Their mouse had a mean time between failure of a week it would jam up irreparably, or... jam up on the table--... It had a flimsy cord whose wires would break. Steve
More informationProgramming graphics
Programming graphics Need a window javax.swing.jframe Several essential steps to use (necessary plumbing ): Set the size width and height in pixels Set a title (optional), and a close operation Make it
More informationChapter 14. More Swing
Chapter 14 More Swing Menus Making GUIs Pretty (and More Functional) Box Containers and Box Layout Managers More on Events and Listeners Another Look at the Swing Class Hierarchy Chapter 14 Java: an Introduction
More informationMore Swing. Chapter 14. Chapter 14 1
More Swing Chapter 14 Chapter 14 1 Objectives learn to add menus, icons, borders, and scroll bars to GUIs learn to use the BoxLayout manager and the Box class learn about inner classes learn about the
More informationWindow Interfaces Using Swing Objects
Chapter 12 Window Interfaces Using Swing Objects Event-Driven Programming and GUIs Swing Basics and a Simple Demo Program Layout Managers Buttons and Action Listeners Container Classes Text I/O for GUIs
More informationJonathan Aldrich Charlie Garrod
Principles of Software Construction: Objects, Design, and Concurrency (Part 3: Design Case Studies) Introduction to GUIs Jonathan Aldrich Charlie Garrod School of Computer Science 1 Administrivia Homework
More informationMore Swing. CS180 Recitation 12/(04,05)/08
More Swing CS180 Recitation 12/(04,05)/08 Announcements No lecture/labs next week Recitations and evening consulting hours will be held as usual. Debbie's study group on tuesday and office hours on thursday
More informationContents Chapter 1 Introduction to Programming and the Java Language
Chapter 1 Introduction to Programming and the Java Language 1.1 Basic Computer Concepts 5 1.1.1 Hardware 5 1.1.2 Operating Systems 8 1.1.3 Application Software 9 1.1.4 Computer Networks and the Internet
More informationMEMORY MANAGEMENT TEST-CASE GENERATION OF C PROGRAMS USING BOUNDED MODEL CHECKING
FEDERAL UNIVERSITY OF AMAZONAS INSTITUTE OF COMPUTING GRADUATE PROGRAM IN COMPUTER SCIENCE MEMORY MANAGEMENT TEST-CASE GENERATION OF C PROGRAMS USING BOUNDED MODEL CHECKING Herbert Rocha, Raimundo Barreto,
More informationWindow Interfaces Using Swing Objects
Chapter 12 Window Interfaces Using Swing Objects Event-Driven Programming and GUIs Swing Basics and a Simple Demo Program Layout Managers Buttons and Action Listeners Container Classes Text I/O for GUIs
More information2010 가을학기부산대학교정보컴퓨터공학부 OVERVIEW OF GUI PROGRAMMING
2010 가을학기부산대학교정보컴퓨터공학부 OVERVIEW OF GUI PROGRAMMING Outline Graphic User Interface (GUI) Introduction AWT and Swing Graphics Programming Event Handling User Interface Components with Swing 2 Graphic User
More informationJBuilder 8.0 JFC and Swing Programming
TEAMFLY JBuilder 8.0 JFC and Swing Programming Chuck Easttom Wordware Publishing, Inc. Library of Congress Cataloging-in-Publication Data Easttom, Chuck. JBuilder 8.0 JFC and Swing programming / by Chuck
More informationGUI Applications. Let s start with a simple Swing application in Java, and then we will look at the same application in Jython. See Listing 16-1.
GUI Applications The C implementation of Python comes with Tkinter for writing Graphical User Interfaces (GUIs). The GUI toolkit that you get automatically with Jython is Swing, which is included with
More informationJList. Displays a series of items The user can select one or more items Class JList extends directly class Jcomponent Class Jlist supports
GUI Component - 4 JList Displays a series of items The user can select one or more items Class JList extends directly class Jcomponent Class Jlist supports Single-selection lists: one item to be selected
More informationSilk Test Migrating from the Classic Agent to the Open Agent
Silk Test 18.5 Migrating from the Classic Agent to the Micro Focus The Lawn 22-30 Old Bath Road Newbury, Berkshire RG14 1QN UK http://www.microfocus.com Copyright Micro Focus 1992-2017. All rights reserved.
More informationSwing Programming Example Number 2
1 Swing Programming Example Number 2 Problem Statement (Part 1 and 2 (H/w- assignment) 2 Demonstrate the use of swing Label, TextField, RadioButton, CheckBox, Listbox,Combo Box, Toggle button,image Icon
More informationWidgets. Widgets Widget Toolkits. 2.3 Widgets 1
Widgets Widgets Widget Toolkits 2.3 Widgets 1 User Interface Widget Widget is a generic name for parts of an interface that have their own behavior: buttons, drop-down menus, spinners, file dialog boxes,
More informationRELIABLE SOFTWARE SYSTEMS
gh@jpl.nasa.gov RELIABLE SOFTWARE SYSTEMS +50 1969 2019 LM: less than 10K lines of code (C-equiv) (36K ROM, 2K RAM, 43Khz cycle) Altair: est. 10M lines of code (est. 1GB RAM, est. 1Ghz cycle) 3 orders
More informationChapter 13 Lab Advanced GUI Applications
Gaddis_516907_Java 4/10/07 2:10 PM Page 113 Chapter 13 Lab Advanced GUI Applications Objectives Be able to add a menu to the menu bar Be able to use nested menus Be able to add scroll bars, giving the
More informationGraphic 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 informationChapter 13 Lab Advanced GUI Applications Lab Objectives. Introduction. Task #1 Creating a Menu with Submenus
Chapter 13 Lab Advanced GUI Applications Lab Objectives Be able to add a menu to the menu bar Be able to use nested menus Be able to add scroll bars, giving the user the option of when they will be seen.
More informationC Praktikum. Advanced Pointers. Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar
C Praktikum Advanced Pointers Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar 2018-11-26 Warning This is a dive under the hood. We will see, and hopefully understand many details
More informationCertified Eclipse Bundle
Certified Eclipse Bundle Turbo Professional Enterprise Integrated Installation >> Sample Applications >> Eclipse 3.3.2 (Europa) Framework with WTP 2.0, including: >> Business Intelligence and Reporting
More informationCONTENTS. Chapter 1 Getting Started with Java SE 6 1. Chapter 2 Exploring Variables, Data Types, Operators and Arrays 13
CONTENTS Chapter 1 Getting Started with Java SE 6 1 Introduction of Java SE 6... 3 Desktop Improvements... 3 Core Improvements... 4 Getting and Installing Java... 5 A Simple Java Program... 10 Compiling
More informationCertified Eclipse Bundle
Certified Eclipse Bundle Turbo Professional Enterprise Integrated Installation Sample Applications Eclipse 3.3.2 (Europa) Framework with WTP 2.0, including: Business Intelligence and Reporting Tools (BIRT)
More informationRizvi College of Arts, Science & Commerce Bandra (W), Mumbai Teaching Plan Academic Year
Academic Year 17-18 Subject: ADVANCE JAVA Class : T.Y.B.Sc. (IT) DIV: Faculty: ARIF PATEL Months JUNE JULY AUGUST Topics to be covered Understanding Layout Manager. Swing: JColorChooser, JComboBox, JFileChooser,
More informationFULLY AUTOMATIC AND PRECISE DETECTION OF THREAD SAFETY VIOLATIONS
FULLY AUTOMATIC AND PRECISE DETECTION OF THREAD SAFETY VIOLATIONS PLDI 2012 by Michael Pradel and Thomas R. Gross ETH Zurich presented by Martin Aigner University of Salzburg May 2, 2013 OVERVIEW The problem
More informationUnit 6 - Software Design and Development LESSON 4 DATA TYPES
Unit 6 - Software Design and Development LESSON 4 DATA TYPES Previously Paradigms Choice of languages Key features of programming languages sequence; selection eg case, if then else; iteration eg repeat
More informationWidgets. Widgets Widget Toolkits. User Interface Widget
Widgets Widgets Widget Toolkits 2.3 Widgets 1 User Interface Widget Widget is a generic name for parts of an interface that have their own behavior: buttons, drop-down menus, spinners, file dialog boxes,
More informationLesson 36: for() Loops (W11D1)
Lesson 36: for() Loops (W11D1) Balboa High School Michael Ferraro October 26, 2015 1 / 27 Do Now Create a new project: Lesson36 Write class FirstForLoop: Include a main() method: public static void main(string[]
More informationModule 5 The Applet Class, Swings. OOC 4 th Sem, B Div Prof. Mouna M. Naravani
Module 5 The Applet Class, Swings OOC 4 th Sem, B Div 2016-17 Prof. Mouna M. Naravani The layout manager helps lay out the components held by this container. When you set a layout to null, you tell the
More informationFirst Name: AITI 2004: Exam 2 July 19, 2004
First Name: AITI 2004: Exam 2 July 19, 2004 Last Name: Standard Track Read Instructions Carefully! This is a 3 hour closed book exam. No calculators are allowed. Please write clearly if we cannot understand
More informationWeek 2: Quick and Dirty Jython Refresher
Week 2: Quick and Dirty Jython Refresher (Prelude to Asynchronous Programming) CS6452 Connecting the Lo-Fi Prototype with the Project A few points about the IM assignment The IM protocol we ll be using
More informationGraphical 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 informationGraphical User Interfaces. Comp 152
Graphical User Interfaces Comp 152 Procedural programming Execute line of code at a time Allowing for selection and repetition Call one function and then another. Can trace program execution on paper from
More informationJTcl and Swank. Bruce A. Johnson, Tom Poindexter, & Dan Bodoh. What s new with Tcl and Tk on the JVM. Wednesday, October 26, 11
JTcl and Swank What s new with Tcl and Tk on the JVM Bruce A. Johnson, Tom Poindexter, & Dan Bodoh JTcl and Swank Bruce s Motivation Cross-platform, scriptable, desktop applications for analyzing and visualizing
More informationOutline. More on the Swing API Graphics: double buffering and timers Model - View - Controller paradigm Applets
Advanced Swing Outline More on the Swing API Graphics: double buffering and timers Model - View - Controller paradigm Applets Using menus Frame menus add a menu bar to the frame (JMenuBar) add menus to
More informationChris9an Kästner Charlie Garrod
Principles of So3ware Construc9on: Objects, Design, and Concurrency (Part 3: Design Case Studies) Introduc3on to GUIs Chris9an Kästner Charlie Garrod School of Computer Science 1 Administrivia Homework
More informationGUI Components Continued EECS 448
GUI Components Continued EECS 448 Lab Assignment In this lab you will create a simple text editor application in order to learn new GUI design concepts This text editor will be able to load and save text
More informationOutline CSE 3461 F10. What is a Widget? Properties of Widgets. A self-contained screen object Also called a control Examples of widgets:
CSE 3461 F10 Widgets Outline What is a widget? Buttons Combo boxes Text components Message boxes 2 What is a Widget? Properties of Widgets A self-contained screen object Also called a control Examples
More information