Upload
mikaia
View
49
Download
3
Tags:
Embed Size (px)
DESCRIPTION
GUI Layout Managers and Components, Continue. Card Layout Borders More GUI components Menu List Sliders Combo Boxes Scroll Panes Split Panes Special Features of Swing components Further GUI Programming Examples Exercises. Introduction. - PowerPoint PPT Presentation
Citation preview
Unit 13 1
GUI Layout Managers and Components, Continue
• Card Layout
• Borders
• More GUI components• Menu
• List
• Sliders
• Combo Boxes
• Scroll Panes
• Split Panes
• Special Features of Swing components
• Further GUI Programming Examples
• Exercises
Unit 13 2
Introduction
• This is our concluding session on GUIs and event-driven programming.
• In our discussion on GUI-based programs so far, we have covered:
– GUI design issues, GUI components and containers.
– Basic event handling.
– Basic layout management.
• We are going to cover:
• More GUI components.
• More layout managers.
• Special Features of Swing components
• With this coverage the student's knowledge base of the basics would be broadened.
Unit 13 3
• A CardLayout object is a layout manager for a container. It treats each component in the container as a card.
• Only one card is visible at a time, and the container acts as a stack of cards.
• The first component added to a CardLayout object is the visible component when the container is first displayed.
• The ordering of cards is determined by the container's own internal ordering of its component objects.
• CardLayout defines a set of methods that allow an application to flip through these cards sequentially, or to show a specified card.
• Card Layout has two constructors:• CardLayout(): Creates a new card layout with gaps of size zero.• CardLayout(int hgap, int vgap) Creates a new card layout with
the specified horizontal and vertical gaps.
Card Layout Manager
Unit 13 4
Card Layout
• Use the Card Layout class when you have an area that can contain
different components at different times.
• Panel cards = new Panel();
• CardLayout cardLayout = new CardLayout();
• cards.setLayout(cardLayout);
• cards.add("Ace", new Button("Ace of Hearts"));
• cards.add("Deuce", new Button("Two of Hearts"));
• cards.add("Three", new Button("Three of Hearts"));
Unit 13 5
Introduction to Borders
• A border can be put around any Swing component to define how the edges of the component should be drawn.
• The BorderFactory class is useful for creating border objects.
• It has methods for creating specific types of borders.
• A border is applied to a component using the setBorder method:
JPanel myPanel = new JPanel();
Border myBorder = BorderFactory.createEtchedBorder();
myPanel.setBorder(myBorder);
Unit 13 6
Borders
• A line border
– Surrounds the component with a simple line
– The line's color and thickness can be specified
• An etched border
– Creates the effect of an etched groove around a component
– Uses colors for the highlight and shadow
• A bevel border
– Can be raised or lowered
– Uses colors for the outer and inner highlights and shadows
Unit 13 7
Borders
• A compound border
– Is a combination of two borders
– One or both of the borders can be a compound border
• A titled border
– Places a title on or around the border
– The title can be oriented in many ways
• A matte border
– Specifies the sizes of the top, left, bottom, and right edges of the border separately
– Uses either a solid color or an image.
Unit 13 8
The BorderDemo Program
Unit 13 9
MenuBar and Menu
• A menu offers options to user.• Menus are not generally added to user interface.• Menu usually appears either in a menu bar or as a popup
menu.• A JFrame often has a menu bar containing many menus;
and each menu can contain many choices.• Menu bar can be added to a JFrame with the method
setJMenuBar.
JFrame window = new JFrame("Some Application");
JMenuBar menuBar = new JMenuBar();
window.setJMenuBar(menuBar);
Unit 13 10
Menu
• Menus are JMenu instances and added to menu bar:
JMenu batter = new JMenu("Batter");
menuBar.add(batter);
• Menu choices are JMenuItem instances, and are added to menu:
JMenuItem swing = new JMenuItem("Swing");
JMenuItem take = new JMenuItem("Take");
JMenuItem bunt = new JMenuItem("Bunt");
batter.add(swing);
batter.add(take);
batter.add(bunt);
Unit 13 11
Lists
• The Swing Jlist class represents a list of items from which the user can choose.
• The contents of a JList object can be specified using an array of objects.
• A JList object generates a list selection event when the current selection changes.
• A JList object can be set so that multiple items can be selected at the same time. It can be one of three options:
– Single selection – only one item can be selected at a time.– Single interval selection – multiple, contiguous items can be selected
at a time.– Multiple interval selection – any combination of items can be
selected.
• The list selection mode is defined by a ListSelectionModel object.
Unit 13 12
Declaring a JList
String[] items = {“A", “B", “C", "D"};
JList list = new JList(items);
list.setSelectionMode(DefaultListSelectionModel.SINGLE_SELECTION);
// Set the item width
int cellWidth = 200;
list.setFixedCellWidth(cellWidth);
// Set the item height
int cellHeight = 18;
list.setFixedCellHeight(cellHeight);
// Get number of items
in the list int size = list.getModel().getSize();
Unit 13 13
List Example
Frame frame = new Frame(); frame.setLayout(new FlowLayout()); Button button1 = new Button("Next"); frame.add(button1); TextField text1 = new TextField(); text1.setColumns(10); frame.add(text1); Label label1 = new Label("First Name:"); frame.add(label1); TextArea textArea1 = new TextArea("This is some text in a text area"); textArea1.setRows(2); textArea1.setColumns(10); frame.add(textArea1); List list1 = new List(); list1.add("FirstItem"); list1.add("SecondItem"); list1.add("ThirdItem"); list1.add("FourthItem"); list1.add("FifthItem"); frame.add(list1); frame.pack(); frame.setVisible(true);
Unit 13 14
Sliders
• A slider is a component that allows the user to specify a numeric value within a bounded range.
• The JSlider class has several methods that allow the programmer to tailor the look of a slider.
• Major and minor tick marks, and labels on the tick marks, can be explicitly set and displayed.
• A slider produces a change event.
Unit 13 15
Sliders Declaration
// Create a horizontal slider with min=0, max=100, value=50
JSlider slider = new JSlider();
// Create a horizontal slider with custom min and max; value is set to the middle
int minimum = -255;
int maximum = 256;
slider = new JSlider(minimum, maximum);
// Create a horizontal slider with custom min, max, and value
int initValue = 0;
slider = new JSlider(minimum, maximum, initValue);
// Create a vertical slider with min=0, max=100, value=50
slider = new JSlider(JSlider.VERTICAL);
// Create a vertical slider with custom min, max, and value
slider = new JSlider(JSlider.VERTICAL, minimum, maximum, initValue);
Unit 13 16
Combo Boxes
• A combo box provides a menu from which the user can choose one of several options.
• The currently selected option is shown in the combo box.
• Unlike a JList object, a combo box shows its options only when the user presses it using the mouse.
• Options can be established using an array of strings or using the addItem method.
• A combo box generates an action event when the user makes a selection from it.
// Create a read-only combobox
String[] items = {"item1", "item2"};
JComboBox readOnlyCB = new JComboBox(items);
// Create an editable combobox
items = new String[]{"item1", "item2"};
JComboBox editableCB = new JComboBox(items);
editableCB.setEditable(true);
Unit 13 17
Scroll Panes
• A scroll pane is useful for images or information too large to fit in a reasonably-sized area.
• A scroll pane offers a limited view of the component it contains.
• It provides vertical and/or horizontal scroll bars that allow the user to scroll to other areas of the component.
• No event listener is needed for a scroll pane.
// Create a scrollable text area
JTextArea textArea = new JTextArea();
JScrollPane scrollableTextArea = new JScrollPane(textArea);
// Create a scrollable list
JList list = new JList();
JScrollPane scrollableList = new JScrollPane(list);
Unit 13 18
Split Panes
• A split pane (JSplitPane) is a container that displays two components separated by a moveable divider bar
• The two components can be displayed side by side, or one on top of the other.
Moveable Divider Bar
LeftComponent
RightComponent
Top Component
Bottom Component
Unit 13 19
Split Panes
• The orientation of the split pane is set using the HORIZONTAL_SPLIT or VERTICAL_SPLIT constants
• The divider bar can be set so that it can be fully expanded with one click of the mouse.
• The components can be continuously adjusted as the divider bar is moved, or wait until it stops moving.
• Split panes can be nested
// Create a left-right split pane
JSplitPane hpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftComponent, rightComponent);
// Create a top-bottom split pane
JSplitPane vpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, topComponent, bottomComponent);
Unit 13 20
Special Features
• Swing components offer special features to facilitate and enhance their use
Special Feature Description
Tool tip Causes a line of text to appear when the mouse cursor pauses over a component
Mnemonic Allows an action to occur in response to a keyboard key combination
Disable Allows a component to be explicitly enabled or disabled
Border Surrounds a component with a border
Unit 13 21
Tool Tips
• Tool tips provide a short pop-up description when the mouse cursor rests momentarily on a component
• A tool tip is assigned using the setToolTipText method of a Swing component.
JButton button = new JButton ("Compute");
button.setToolTipText ("Calculate size.");
Unit 13 22
Disabled Components
• Components can be disabled if they should not be used.
• A disabled component is "grayed out" and will not respond to user interaction.
• The status is set using the setEnabled method:
JButton button = new JButton (“Do It”);
button.setEnabled (false);