0% found this document useful (0 votes)
140 views5 pages

Swings

Java Swing provides a rich set of GUI components Used to create a Java program with a graphical user interface (GUI) table controls, list controls, tree controls, buttons, labels, and so on. Eclipse provides sophisticated checking on what is going on now.

Uploaded by

Abdul Wahid
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
140 views5 pages

Swings

Java Swing provides a rich set of GUI components Used to create a Java program with a graphical user interface (GUI) table controls, list controls, tree controls, buttons, labels, and so on. Eclipse provides sophisticated checking on what is going on now.

Uploaded by

Abdul Wahid
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 5

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 (compare now defunct MFC)

Swing and the AWT


AWT = abstract windows toolkit (cross platform) AWT = earliest version of Java GUI eg Frame AWT not JFrame Swing Most Swing components are 'lightweight' Do not mix AWT and Swing Use Swing

Swing and threads


A thread is a lightweight process Most Swing components are not thread-safe Solution is to make sure all code that creates and modifies Swing components executes in the same 'event-dispatching' thread Start a Swing application using the following code..

What is Java Swing?


Part of the Java Foundation Classes (JFC) Provides a rich set of GUI components Used to create a Java program with a graphical user interface (GUI) table controls, list controls, tree controls, buttons, and labels, and so on

What features are available?


GUI components like button, checkbox, and so on Java 2D API: images, figures, animation Pluggable look and feel: use samples or create your own Data Transfer: cut, copy, paste, drag & drop Internationalization: supports different input language, right to left reading Accessibility API: for people with disabilities Undo Framework API: supports unlimited numbers of actions to undo and redo Flexible Deployment: run within a browser as an applet or Java Web Start

Who are users?

Since we are evaluating user interface toolkit itself, in this case Java Swing, users will be software developers, not software users I believe that most Java developers use Eclipse as their developing platform so we will evaluate Java Swing with Eclipse based on ten usability heuristics by Jakob Nielson 1. Visibility of system status: This may be a strong advantage of Java Swing over other UI toolkits, not because of Java Swing itself is great, but because Eclipse provides such sophisticated checking on what is going on now Constantly checks for syntax errors Lists available methods or variables when press . (dot) However, you dont have synchronous result view You will have to run it in order to see the status of your program 2. Match between system and the real world: First of all, it is Java It follows Java convention It consists of 18 public packages of Java classes Its classes and methods are reasonably named Unless you are the first time programmer, you dont have to worry about its syntax or convention 3. User control and freedom : Eclipse supports strong undo and redo features You cant possibly go wrong and have to rewrite every code You can always fix it even though it may take you some effort and time Java Swing also provides undo and redo package javax.swing.event.UndoableEditEvent; javax.swing.event.UndoableEditListener; javax.swing.undo.UndoableEdit; 4. Consistency and standards : Similar to #2 Java Swing follows Java convention Packages, classes, methods, parameters, variables Mainly constructor, getter, setter 5. Error prevention : First of all, Java is a strongly typed language: primitives and objects Eclipse checks for syntax and type errors continuously It gives red underline to errors and small red box to let you know which line in document it is located If you move your mouse over the error, then it suggests possible solutions to the error
2

If you think one of the suggestions is a solution, then simply click on it to apply it Of course, it wont compile and run until you fix all the syntax errors However, you dont have any idea about runtime errors except that you will have to run it and find out 6. Recognition rather than recall : Its a programming language, so its better and faster for you if you memorize names and their functions of classes or methods However, whenever you press dot after name of package, class, or object, then eclipse provides you a list of all possible subclasses, functions and variables If you move your mouse over almost anything, then eclipse provides you with a text document associated with it, usually javadoc, or you can click on it and it directs you to online javadoc page You dont have a help of graphical interface to develop a graphical interface, so it maybe a disadvantage of Java Swing with eclipse. By the way, you can have a graphical interface if you use NetBeans IDE instead of eclipse

7. Flexibility and efficiency of use: Swing includes many basic


components as a package, so it is efficient to use them At the same time, you can create almost anything you want as combination of those components and some pure coding in Java Java have had a reputation for being slower and requiring more memory than those written in natively compiled languages such as C or C++ However, the performance heavily depends on how you optimize your codes and which components of UI you use the most frequently It may be subsequently slower or faster Swing is designed in a way that it provides a set of "lightweight" (all-Java language) components that, to the maximum degree possible, work the same on all platforms It includes almost only and all components we could find around any software with user interface Yet, it gives developers varieties to customize those components

8. Aesthetic and minimalist design

9. Help users recognize, diagnose, and recover from errors


Syntax and type checking errors are already covered previously Java shows where in the code runtime errors (exceptions) are caused, specifying line numbers and brief reason for error on the console of eclipse Its not always right, but most of the times it is right Its relatively easy to find the cause of the error and debug it comparing to other languages I have experienced with 10. Help and documentation:: Javadoc

Eclipses support for javadoc (already covered) Conclusion :: Java Swing is easier to learn than others because its Java You can use any helpful tools out there that are for Java development like eclipse IDE, NetBeans IDE Lacks live graphical and interactive help while developing Has unlimited possibilities depending on how you implement your software

AWT and Swing:::


Most GUI class libraries in C++ are platform specific Different hardware capabilities Subtle differences between the "look-and-feel" of various Windowing operating systems Abstract Window Toolkit (AWT) is cross-platform Swing can observe various OS look-and-feel conventions

Common functionality/specific implementation approach


Toolkit -------------------------------------------------- AWT -----------|-----------Button List JVM | | Native GUI Button Peer List Peer (Windows, Mac, X) AWT GUI classes are platform-independent elements Each AWT platform-specific toolkit comes with peer class implementing platformspecific behavior of its AWT class Combining platform-independent AWT class with platform-specific peer class transforms generic, abstract windows behavior into specific, particular behavior Swing vs AWT:: AWT is Javas original set of classes for building GUIs Uses peer components of the OS; heavyweight Not truly portable: looks different and lays out inconsistently on different OSs Due to OSs underlying display management system Swing is designed to solve AWTs problems 99% java; lightweight components Drawing of components is done in java Uses 4 of AWTs components Window, frame, dialog, ? Lays out consistently on all OSs Uses AWT event handling Implementing a Swing GUI Import javax.swing.*, java.io.*, java.awt.* Make a specific class to do GUI functions Specify all the GUI functions/components in the classs constructor (or methods / classes called by the constructor)

Run the GUI by instantiating the class in the classs main method

You might also like