Preview SWING Tutorial (PDF Version)

Total Page:16

File Type:pdf, Size:1020Kb

Preview SWING Tutorial (PDF Version) Java Swing About the Tutorial JAVA provides a rich set of libraries to create Graphical User Interface in a platform independent way. In this tutorial, we'll look at SWING GUI controls. Audience This tutorial is designed for software professionals who are willing to learn JAVA GUI Programming in simple and easy steps. This tutorial provides great understanding on JAVA GUI Programming concepts and after completing this tutorial you will be at an intermediate level of expertise, from where you can take yourself to higher levels of expertise. Prerequisites Before proceeding with this tutorial, you should have a basic understanding of Java programming language, text editor, execution of programs, etc. Disclaimer & Copyright Copyright 2016 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, please notify us at [email protected]. i Java Swing Table of Contents About the Tutorial .................................................................................................................................... i Audience .................................................................................................................................................. i Prerequisites ............................................................................................................................................ i Disclaimer & Copyright ............................................................................................................................. i Table of Contents .................................................................................................................................... ii 1. SWING ─ OVERVIEW ............................................................................................................ 1 MVC Architecture .................................................................................................................................... 1 Swing Features ........................................................................................................................................ 1 2. SWING ─ ENVIRONMENT SETUP .......................................................................................... 2 Setting Up the Path for Windows 2000/XP .............................................................................................. 2 Setting Up the Path for Windows 95/98/ME ........................................................................................... 2 Setting Up the Path for Linux, UNIX, Solaris, FreeBSD ............................................................................. 2 Popular Java Editors ................................................................................................................................ 3 3. SWING ─ CONTROLS ............................................................................................................ 4 Component Class..................................................................................................................................... 5 Container Class ...................................................................................................................................... 27 JComponent Class ................................................................................................................................. 34 SWING UI Elements ............................................................................................................................... 48 Jlabel Class ............................................................................................................................................ 50 JButton Class ......................................................................................................................................... 57 JColorChooser Class............................................................................................................................... 62 JCheckBox Class..................................................................................................................................... 68 JRadioButton Class ................................................................................................................................ 74 JList Class .............................................................................................................................................. 79 ii Java Swing JComboBox Class ................................................................................................................................... 91 JTextField Class ................................................................................................................................... 102 JPassword Field Class .......................................................................................................................... 109 JTextArea Class.................................................................................................................................... 114 ImageIcon Class ................................................................................................................................... 120 JScrollBar Class .................................................................................................................................... 126 JOptionPane Class ............................................................................................................................... 133 JFileChooser Class ............................................................................................................................... 146 JProgressBar Class ............................................................................................................................... 158 JSlider Class ......................................................................................................................................... 166 JSpinner Class ...................................................................................................................................... 174 4. SWING ─ EVENT HANDLING ............................................................................................. 181 What is an Event? ............................................................................................................................... 181 Types of Event ..................................................................................................................................... 181 What is Event Handling? ..................................................................................................................... 181 Steps Involved in Event Handling ........................................................................................................ 182 Callback Methods ................................................................................................................................ 182 5. SWING ─ EVENT CLASSES ................................................................................................. 186 EventObject Class ................................................................................................................................ 186 SWING Event Classes ........................................................................................................................... 187 AWTEvent Class................................................................................................................................... 188 ActionEvent Class ................................................................................................................................ 191 InputEvent Class .................................................................................................................................. 193 KeyEvent Class .................................................................................................................................... 195 MouseEvent Class ............................................................................................................................... 204 WindowEvent Class ............................................................................................................................. 207 iii Java Swing AdjustmentEvent Class ........................................................................................................................ 210 ComponentEvent Class ........................................................................................................................ 211 ContainerEvent Class ........................................................................................................................... 213 MouseMotionEvent Class .................................................................................................................... 214 PaintEvent Class .................................................................................................................................
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]
  • View of XML Technology
    AN APPLICATION OF EXTENSlBLE MARKUP LANGUAGE FOR INTEGRATION OF KNOWLEDGE-BASED SYSTEM WITH JAVA APPLICATIONS A Thesis Presented to The Faculty of the Fritz J. and Dolores H. Russ College of Engineering and Technology Ohio University In Partial Fulfillment of the Requirement for the Degree Master of Science BY Sachin Jain November, 2002 ACKNOWLEDGEMENTS It is a pleasure to thank the many people who made this thesis possible. My sincere gratitude to my thesis advisor, Dr. DuSan Sormaz, who helped and guided me towards implementing the ideas presented in this thesis. His dedication to research and his effort in the development of my thesis was an inspiration throughout this work. The thesis would not be successful without other members of my committee, Dr. David Koonce and Dr. Constantinos Vassiliadis. Special thanks to them for their substantial help and suggestions during the development of this thesis. I would like also to thank Dr. Dale Masel for his class on guidelines for how to write thesis. Thanlts to my fellow colleagues and members of the lMPlanner Group, Sridharan Thiruppalli, Jaikumar Arumugam and Prashant Borse for their excellent cooperation and suggestions. A lot of infom~ation~1sef~11 to the work was found via the World Wide Web; 1 thank those who made their material available on the Web and those who kindly responded back to my questions over the news-groups. Finally, it has been pleasure to pursue graduate studies at IMSE department at Ohio University, an unique place that has provided me with great exposures to intricacies underlying development, prograrn~ningand integration of different industrial systems; thus making this thesis posslbie.
    [Show full text]
  • A Java Implementation of a Portable Desktop Manager Scott .J Griswold University of North Florida
    UNF Digital Commons UNF Graduate Theses and Dissertations Student Scholarship 1998 A Java Implementation of a Portable Desktop Manager Scott .J Griswold University of North Florida Suggested Citation Griswold, Scott .,J "A Java Implementation of a Portable Desktop Manager" (1998). UNF Graduate Theses and Dissertations. 95. https://digitalcommons.unf.edu/etd/95 This Master's Thesis is brought to you for free and open access by the Student Scholarship at UNF Digital Commons. It has been accepted for inclusion in UNF Graduate Theses and Dissertations by an authorized administrator of UNF Digital Commons. For more information, please contact Digital Projects. © 1998 All Rights Reserved A JAVA IMPLEMENTATION OF A PORTABLE DESKTOP MANAGER by Scott J. Griswold A thesis submitted to the Department of Computer and Information Sciences in partial fulfillment of the requirements for the degree of Master of Science in Computer and Information Sciences UNIVERSITY OF NORTH FLORIDA DEPARTMENT OF COMPUTER AND INFORMATION SCIENCES April, 1998 The thesis "A Java Implementation of a Portable Desktop Manager" submitted by Scott J. Griswold in partial fulfillment of the requirements for the degree of Master of Science in Computer and Information Sciences has been ee Date APpr Signature Deleted Dr. Ralph Butler Thesis Advisor and Committee Chairperson Signature Deleted Dr. Yap S. Chua Signature Deleted Accepted for the Department of Computer and Information Sciences Signature Deleted i/2-{/1~ Dr. Charles N. Winton Chairperson of the Department Accepted for the College of Computing Sciences and E Signature Deleted Dr. Charles N. Winton Acting Dean of the College Accepted for the University: Signature Deleted Dr.
    [Show full text]
  • Programming Java for OS X
    Programming Java for OS X hat’s so different about Java on a Mac? Pure Java applica- tions run on any operating system that supports Java. W Popular Java tools run on OS X. From the developer’s point of view, Java is Java, no matter where it runs. Users do not agree. To an OS X user, pure Java applications that ignore the feel and features of OS X are less desirable, meaning the customers will take their money elsewhere. Fewer sales translates into unhappy managers and all the awkwardness that follows. In this book, I show how to build GUIs that feel and behave like OS X users expect them to behave. I explain development tools and libraries found on the Mac. I explore bundling of Java applications for deployment on OS X. I also discuss interfacing Java with other languages commonly used on the Mac. This chapter is about the background and basics of Java develop- ment on OS X. I explain the history of Java development. I show you around Apple’s developer Web site. Finally, I go over the IDEs commonly used for Java development on the Mac. In This Chapter Reviewing Apple Java History Exploring the history of Apple embraced Java technologies long before the first version of Java on Apple computers OS X graced a blue and white Mac tower. Refugees from the old Installing developer tan Macs of the 1990s may vaguely remember using what was tools on OS X called the MRJ when their PC counterparts were busy using JVMs. Looking at the MRJ stands for Mac OS Runtime for Java.
    [Show full text]
  • A Study on Advance Java with Database Management
    IJRDO - Journal of Computer Science and Engineering ISSN: 2456-1843 ENGINEERING A STUDY ON ADVANCE JAVA WITH DATABASE MANAGEMENT MONIKA JATIWAL , CHETNA ARORA , CHARU ARORA OUTLINE 1. Introduction 1.1 API 1.2 Applets 1.3 Swing 1.4 Java Software: Net beans 1.5 Features of advance java 2. Database Management 2.1 SQL as a Data Definition Language 2.2 JDBC 2.3 Microsoft ODBC 3. Database connectivity 4. Advantage of Advance Java 5. Conclusion 6. References ABSTRACT This paper gives a short description about the java and database connectivity. It describes the advance java features with database Volume-1 | Issue-1 | January, 2016 | Paper-1 1 IJRDO - Journal of Computer Science and Engineering ISSN: 2456-1843 JOURNAL OF COMPUTER SCIENCE AND ENGINEERING connectivity. It also describes the application programming interface with applets and swings. This paper explains about the java and its connectivity with database. It describes the structured query language as a data definition and data manipulation language. It also defines the java platform. 1. INTRODUCTION Java is a high-level object-oriented programming language developed by the Sun Microsystems. Though it is associated with the World Wide Web but it is older than the origin of Web. It was only developed keeping in mind the consumer electronics and communication equipment’s. It came into existence as a part of web application, web services and a platform independent programming language in the 1990s. Earlier, C++ was widely used to write object oriented programming languages, however, it was not a platform independent and needed to be recompiled for each different CPUs.
    [Show full text]
  • The GNOME Desktop Environment
    The GNOME desktop environment Miguel de Icaza ([email protected]) Instituto de Ciencias Nucleares, UNAM Elliot Lee ([email protected]) Federico Mena ([email protected]) Instituto de Ciencias Nucleares, UNAM Tom Tromey ([email protected]) April 27, 1998 Abstract We present an overview of the free GNU Network Object Model Environment (GNOME). GNOME is a suite of X11 GUI applications that provides joy to users and hackers alike. It has been designed for extensibility and automation by using CORBA and scripting languages throughout the code. GNOME is licensed under the terms of the GNU GPL and the GNU LGPL and has been developed on the Internet by a loosely-coupled team of programmers. 1 Motivation Free operating systems1 are excellent at providing server-class services, and so are often the ideal choice for a server machine. However, the lack of a consistent user interface and of consumer-targeted applications has prevented free operating systems from reaching the vast majority of users — the desktop users. As such, the benefits of free software have only been enjoyed by the technically savvy computer user community. Most users are still locked into proprietary solutions for their desktop environments. By using GNOME, free operating systems will have a complete, user-friendly desktop which will provide users with powerful and easy-to-use graphical applications. Many people have suggested that the cause for the lack of free user-oriented appli- cations is that these do not provide enough excitement to hackers, as opposed to system- level programming. Since most of the GNOME code had to be written by hackers, we kept them happy: the magic recipe here is to design GNOME around an adrenaline response by trying to use exciting models and ideas in the applications.
    [Show full text]
  • The Applet Class, Swings
    Module – 5 The Applet Class, Swings OOC 4th Sem, ‘B’ Div 2016-17 Prof. Mouna M. Naravani Swings - Introduction Differentiate between AWT and Swings. (Jan 2013, 5m) Sl. No Java AWT Java Swings 1 AWT stands for Abstract windows Swing is also called as JFC’s (Java toolkit. Foundation classes). 2 AWT components are platform- Java swing components are platform- dependent. independent. 3 AWT components are heavyweight. Swing components are lightweight. 4 AWT doesn't support pluggable look Swing supports pluggable look and and feel. feel. Sl. No Java AWT Java Swings 5 AWT provides less components than Swing provides more powerful Swing. components such as tables, lists, scrollpanes, colorchooser, tabbedpane etc. 6 AWT doesn't follows MVC(Model View Swing follows MVC. Controller) where model represents data, view represents presentation and controller acts as an interface between model and view. Two Key Swing Features (June 2012, 10m) 1. Lightweight components 2. Pluggable look and feel 1. Lightweight Components Swing components are lightweight as they are written entirely in Java and do not depend on native peers (platform specific code resources). Rather, they use simple drawing primitives to render themselves on the screen. The look and the feel of the component is not controlled by the underlying operating system but by Swing itself. Thus, they are not restricted to platform-specific appearance like, rectangular or opaque shape. 2. Pluggable Look and Feel Swing supports a pluggable look and feel (PLAF). Because each Swing component is rendered by Java code rather than by native peers, the look and feel of a component is under the control of Swing.
    [Show full text]
  • Java-Accessibility-Guide.Pdf
    Java Platform, Standard Edition Java Accessibility Guide Release 15 F32124-01 September 2020 Java Platform, Standard Edition Java Accessibility Guide, Release 15 F32124-01 Copyright © 1993, 2020, Oracle and/or its affiliates. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or "commercial computer software documentation" pursuant to the applicable Federal Acquisition
    [Show full text]
  • GUI Object Level Architectures Recap
    GUI Object Level Architectures Recap • Lots of Input Devices – Basic input devices (keyboard, mouse, buttons, valuators) – Exotic input devices (3D Input, Gloves, Crosspads) – Research input devices (Peephole display, speech, touch) Recap • Handling input – Predefine all kinds of devices (too rigid, didn’t work too well) – Instead, organize everything as event or sampled devices – Handle everything in software as events Mouse Events Software Keyboard Software Today • Object-level architectures – Design patterns for GUIs – Model-View-Controller – Pluggable Look and Feel – Undo / Redo Internal Organization of Widgets • GUI widgets organized Model-View-Controller (MVC) – Basic idea: split widget into three separate objects – Each handles different aspect of widget Model-View-Controller • Model handles core functionality and data • Micro-level (internal to widget) – Scrollbar state – Checkbox state – What cell in table is currently highlighted • Macro-level (application) – Table data – Content in a document – Image in paint program Model-View-Controller • Model provides: – methods to edit data, which Controller can call – methods to access state, which View and Controller can request • Model has registry of dependent Views to notify on data changes • In Swing, listeners stored here Model-View-Controller • Model examples: – text editor: model is text string – slider: model is an integer – spreadsheet: collection of values related by functional constraints Model-View-Controller • View handles how the widget appears – Handles display of information
    [Show full text]
  • Jquery: Animations
    jQuery: Animations ATLS 3020 - Digital Media 2 Week 9 - Day 2 jQuery Overview ● All HTML must be valid! ● Define elements in HTML ● Styling and presentation in CSS ● Add interactivity with javascript/jQuery jQuery Overview All jQuery must go inside of $(document).ready(function(){}) HTML <head> // meta, title, css <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"> </script> <script> $(document).ready(function() { // your javascript and jQuery code goes here }); </script> </head> jQuery Overview You can only add jQuery variables with jQuery methods and javascript variables with javascript methods Javscript We have a function that changes function change_color() { the color of an element: // changes the color of something } We can use ONE of the two options. We cannot combine document.getElementById() with the click method. And we cannot combine $(selector) with the onclick method. Javscript jQuery var button; $("#button").click(change_color); button = document.getElementById("button"); button.onclick(change_color); Some jQuery animations jQuery Makes a hidden element fade into view $("#banner").fadeIn(); jQuery Hides an element by fading it out $("#banner").fadeOut(); jQuery Makes a visible element side out of view $("#banner").slideUp(); jQuery $("#banner").slideDown(); Makes a hidden element slide into view jQuery Alternates between hiding and showing the $("#banner").toggle(); “banner” id jQuery Alternates between hiding and showing the $("#banner").slideToggle(); “banner” id, while sliding in and out jQuery and CSS We can also edit CSS directly with jQuery: $(selector).css("property", "value"); jQuery $("#banner").css("font-size", "100px"); Changes the font-size of the banner element jQuery $("#banner").css("color", "#00f"); Changes the font color of the banner element Or change multiple properties at once: $(selector).css({ "attribute", "value", jQuery "attribute", "value" }); $("#banner").css({ "font-size", "100px", "color", "#00f" }); Exercise (pairs) 1.
    [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]