Top Banner
DAT602 Database Application Development Lecture 6 JAVA Swing
30

DAT602 Database Application Development

Feb 24, 2016

Download

Documents

René

DAT602 Database Application Development . Lecture 6 JAVA Swing. Database Application Development - Lecture 6. Library of JAVA. In JAVA’s library, different packages contain classes with different functions. java.lang java.io java.util javax.swing … - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: DAT602 Database Application Development

DAT602 Database Application Development

Lecture 6 JAVA Swing

Page 2: DAT602 Database Application Development

• Library of JAVA. In JAVA’s library, different packages contain classes with different functions.

java.lang java.io java.utiljavax.swing …

• Developers must import corresponding package in the resource code before using it.

Database Application Development - Lecture 6

Page 3: DAT602 Database Application Development

• JFC and SwingJFC is short for Java Foundation Classes, which encompass a group of features for building graphical user interfaces (GUIs) and adding rich graphics functionality and interactivity to Java applications.

• This lecture’s topic is javax.swing.

Database Application Development - Lecture 6

Page 4: DAT602 Database Application Development

• What is in javax.swing package ? What can swing provide to us ?

Database Application Development - Lecture 6

Feature Description

Swing GUI Components Includes everything from buttons to split panes to tables.

Pluggable Look-and-Feel Support The look and feel of Swing applications is pluggable, allowing a choice of look and feel.

Accessibility API Enables assistive technologies, such as screen readers.

Java 2D API Enables developers to easily incorporate high-quality 2D graphics, text, and images in applications and applets.

Internationalization Language support.

Page 5: DAT602 Database Application Development

• What is container in JAVA swing ?Container is a set of Java classes, a container could be JFrame, JApplet or JDialog. These containers can be used for containing other Java swing components or containers.

Database Application Development - Lecture 6

Page 6: DAT602 Database Application Development

• To appear onscreen, every GUI component must be part of a containment hierarchy. A containment hierarchy is a tree of components that has a top-level container as its root.

Database Application Development - Lecture 6

Page 7: DAT602 Database Application Development

Database Application Development - Lecture 6

• containment hierarchy for this example's GUI

Page 8: DAT602 Database Application Development

Database Application Development - Lecture 6

• Top-Level Containers and Containment HierarchiesEach program that uses Swing components has at least one top-level container. This top-level container is the root of a containment hierarchy — the hierarchy that contains all of the Swing components that appear inside the top-level container.

Page 9: DAT602 Database Application Development

• The Root PaneEach top-level container relies on a reclusive intermediate container called the root pane.

Database Application Development - Lecture 6

Page 10: DAT602 Database Application Development

• How to add a component to pane ?Here's the simple code that add a label to a container.container.add(yellowLabel, BorderLayout.CENTER);yellowLabel is a Label component.BorderLayout.CENTER indicate which kind of layout this component applied, and its position.

Database Application Development - Lecture 6

Page 11: DAT602 Database Application Development

• In next slides, you will see some useful swing components.Button, Label, List, Panel, Password Field, Scroll Pane, Text Field.

Database Application Development - Lecture 6

Page 12: DAT602 Database Application Development

Database Application Development - Lecture 6

• First, let’s see the JButton. In this part, we’ll use ButtonDemo for illustration.

Page 13: DAT602 Database Application Development

• Button. If you want using swing’s button component, you have to import following package in the beginning of your code.package: javax.swing.JButton

import javax.swing.JButton;

Database Application Development - Lecture 6

Page 14: DAT602 Database Application Development

• How to create a JButton ?JButton b1 = new JButton("Disable middle button", leftButtonIcon);

• A Swing button can display both text and an image.

Database Application Development - Lecture 6

Page 15: DAT602 Database Application Development

• After a JButton being created, some properties should be set.b1 = new JButton("Disable middle button", leftButtonIcon);b1.setVerticalTextPosition(AbstractButton.CENTER);b1.setHorizontalTextPosition(AbstractButton.LEADING); //aka LEFT, for left-to-right localesb1.setMnemonic(KeyEvent.VK_D);b1.setActionCommand("disable");

Database Application Development - Lecture 6

Page 16: DAT602 Database Application Development

• After b1 being created, we also need to add a action listener to this new button.

b1.addActionListener(this);• What is action listener ?

Action listener is a action capturer, it is used for notifying every time the user clicks the button.

Database Application Development - Lecture 6

Page 17: DAT602 Database Application Development

• After all properties of button being set, and the action listener being bound with this button, then we can add this button to its higher level container.for example, add button b1 to a pane:

pand.add(b1);

Database Application Development - Lecture 6

Page 18: DAT602 Database Application Development

• For response the command from buttons, we should create a function to process different commands.

public void actionPerformed(ActionEvent e) { if ("disable".equals(e.getActionCommand())) { b2.setEnabled(false); b1.setEnabled(false); b3.setEnabled(true); }}

Database Application Development - Lecture 6

Page 19: DAT602 Database Application Development

• JListA JList presents the user with a group of items, displayed in one or more columns, to choose from. Lists can have many items, so they are often put in scroll panes.

Database Application Development - Lecture 6

Page 20: DAT602 Database Application Development

• Create and initializing a ListJList list = new JList(listModel); //create a instance of Jlist list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // set a selection model

list.setSelectedIndex(0); // the default selected item list.addListSelectionListener(this); // add a listener list.setVisibleRowCount(5); // number of visible records

Database Application Development - Lecture 6

Page 21: DAT602 Database Application Development

• Choose a list modelIf you initialize a list with an array or vector, the constructor implicitly creates a default list model. The default list model is immutable — you cannot add, remove, or replace items in the list.ArrayList data = new ArrayList();list = new JList(data); //data has type Object[]

Database Application Development - Lecture 6

Page 22: DAT602 Database Application Development

• Choose a list modelTo create a list whose items can be changed individually, set the list‘s model to an instance of a mutable list model class, such as an instance of DefaultListModel.You can set a list's model when you create the list or by calling the setModel method.

list.setModel(ListModel model);

Database Application Development - Lecture 6

Page 23: DAT602 Database Application Development

• List selection modeyou can use the method setSelectionMode to set the selecting model.

SINGLE_SELECTION SINGLE_INTERVAL_SELECTION MULTIPLE_INTERVAL_SELECTIO

Database Application Development - Lecture 6

Page 24: DAT602 Database Application Development

• Adding Items to and Removing Items from a List• Before introduce add and remove operation.

Here we creates a mutable list model object, puts the initial items in it, and uses the list model to create a list. We create a list for our example first.

DefaultListModel listModel = new DefaultListModel(); listModel.addElement("Debbie Scott"); listModel.addElement("Scott Hommel"); listModel.addElement("Alan Sommerer");

JList list = new JList(listModel);

Database Application Development - Lecture 6

Page 25: DAT602 Database Application Development

• Add a element to list.example:listModel.insertElementAt(employeeName.getText(), index);

employeeName is a text field which is used for input new employee’s name.index is used for indicating where this new element be inserted.NOTE: add new element to the object list contains.

Database Application Development - Lecture 6

Page 26: DAT602 Database Application Development

• Remove an element from listlistModel.remove(index);

index is used for indicating which element should be removed. You can indicate index manually, or you can use JList’s method getSelectedIndex to get the selected element’s index.

Database Application Development - Lecture 6

Page 27: DAT602 Database Application Development

• Scroll PanesA JScrollPane provides a scrollable view of a component. When screen real estate is limited, use a scroll pane to display a component that is large or one whose size can change dynamically.

Database Application Development - Lecture 6

Page 28: DAT602 Database Application Development

Database Application Development - Lecture 6

Page 29: DAT602 Database Application Development

• Hot to create and initialize scroll pane ?JList list = new JList(array);JScrollPane scrollPane = new JScrollPane(list);

You should also add this scroll pane to a higher level container.example:rootPane.add(scrollPane, BorderLayout.CENTER);

Database Application Development - Lecture 6

Page 30: DAT602 Database Application Development

• Reference

http://java.sun.com/docs/books/tutorial/uiswing/components/index.html

Database Application Development - Lecture 6