70
Introduction to Swing Swing API is set of extensible GUI Components to create JAVA based Front End/ GUI Applications. It is build upon top of AWT API and acts as replacement of AWT API as it has almost every control corresponding to AWT controls. Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 1

Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Introduction to Swing

Swing API is set of extensible GUI Components to create JAVA based Front End/ GUI Applications. It is build upon top of AWT API and acts as replacement of AWT API as it has almost every control corresponding to AWT controls.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 1

Page 2: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Swing Features Light Weight - Swing component are independent of native Operating System's API as Swing API controls are rendered mostly using pure JAVA code instead of underlying operating system calls.

Rich controls - Swing provides a rich set of advanced controls like Tree, TabbedPane, slider, colorpicker, table controls

Pluggable look-and-feel- SWING based GUI Application look and feel can be changed at run time based on available values.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 2

Page 3: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Difference between AWT and Swing

N

o.

Java AWT Java Swing

1 AWT components are platform-dependent.

Java swing components are platform-independent.

2 AWT components are heavyweight. Swing components are lightweight.

3 AWT doesn't support pluggable look and feel.

Swing supports pluggable look and feel.

4 AWT provides less components than Swing.

Swing provides more powerful componentssuch as tables, lists, scrollpanes, colorchooser, tabbedpane etc.

5 AWT doesn't follows MVC(Model View Controller) where model represents data, view represents presentation and controller acts as an interface between model and view.

Swing follows MVC.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 3

Page 4: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Hierarchy of Java Swing classes

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 4

Page 5: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Using Top-Level Containers

Swing provides three generally useful top-level container

classes: JFrame, JDialog, and JApplet.

A container has several layers in it. You can think of a layer as a

transparent film that overlays the container.

In Java Swing, the layer that is used to hold objects is called

the content pane.

Objects are added to the content pane layer of the container.

The getContentPane() method retrieves the content pane layer

so that you can add an object to it. Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 5

Page 6: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 6

Page 7: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

getContentPane()

Returns the contentPane object for this container.

import java.awt.*; import java.applet.*; import javax.swing.*; public class GridLayoutExample extends JApplet { public void init() { Container c = getContentPane(); c.setLayout(new GridLayout(2, 4)); c.add(new JButton("One")); c.add(new JButton("Two")); c.add(new JButton("Three")); c.add(new JButton("Four")); c.add(new JButton("Five")); } } Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 7

Page 8: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 8

Page 9: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

import java.awt.*;

import javax.swing.*;

public class Frame4a

{

public static void main(String[] args)

{

JFrame f = new JFrame("JFrame with a JPanel");

JLabel L = new JLabel("Hello World !");

JPanel P = new JPanel(); // Make a Jpanel

P.add(L);

f.getContentPane().add(P);

f.setSize(400,300);

f.setVisible(true);

}

}

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 9

Page 10: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

JApplet

• JApplet is a class that represents the Swing applet.

• It is a subclass of Applet class.

• It provides all the functionalities of the AWT applet as well as support for menubars and layering of components.

• Whenever we require to add a component to it, the component is added to the content pane.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 10

Page 11: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

• Applet is a top-level container class and you should never draw on it directly, instead you should draw on the component class like JPanel and then add this JPanel to the JApplet

• The content pane can be obtained via the method

shown here: Container getContentPane( ) e.g. Container cp = getContentPane(); • The add( ) method of Container can be used to add a

component to a content pane. Its form is shown here: void add(comp) e.g. add(cp);

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 11

Page 12: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Icons and Labels

Icons

• In Swing, icons are encapsulated by the ImageIcon class, which paints an icon from an image.

Constructors:

• ImageIcon(String filename)

• ImageIcon(URL url)

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 12

Page 13: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Labels

• Swing labels are instances of the JLabel class, which extends JComponent. It can display text and/or an icon.

Constructors:

• JLabel(Icon i)

• JLabel(String s)

• JLabel(String s, Icon i, int align)

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 13

Page 14: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Methods used with JLabel

• The icon and text associated with the label can be read and written by the following methods:

• Icon getIcon( ) • String getText( ) • void setIcon(Icon i) • void setText(String s)

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 14

Page 15: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Example:

import java.awt.*;

import javax.swing.*;

/* <applet code="JLabelDemo" width=250 height=150> </applet> */

public class JLabelDemo extends JApplet

{

public void init()

{

Container contentPane = getContentPane();

ImageIcon ii = new ImageIcon("IC.jpg");

JLabel jl = new JLabel("IC", ii, JLabel.CENTER);

contentPane.add(jl);

}

}

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 15

Page 16: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

TextFields

• The Swing text field is encapsulated by the JTextComponent class, which extends JComponent.

Constructors

• JTextField( )

• JTextField(int cols)

• JTextField(String s, int cols)

• JTextField(String s)

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 16

Page 17: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

import java.awt.*; import javax.swing.*; /*<applet code="JTextFieldDemo" width=300 height=50></applet> */ public class JTextFieldDemo extends JApplet { JTextField jtf; public void init() { Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout()); jtf = new JTextField(15); contentPane.add(jtf); } }

Example:

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 17

Page 18: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

JComboBox

Combo box is a combination of text fields and drop-down list.JComboBox component is used to create a combo box in Swing.

Constructor for JComboBox

JComboBox()

JComboBox(String arr[])

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 18

Page 19: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Methods used with JComboBox

• void addItem(Object anObject) – Adds an item to the item list.

• void addItemListener(ItemListener aListener) – Adds an ItemListener.

• Object getItemAt(int index) – Returns the list item at the specified index.

• int getItemCount() – Returns the number of items in the list.

• Object getSelectedItem() – Returns the current selected item.

• void removeAllItems() – Removes all items from the item list.

• void removeItem(Object anObject) – Removes an item from the item list.

• void removeItemAt(int anIndex) – Removes the item at anIndex This method works only if the JComboBox uses a

mutable data model.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 19

Page 20: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

import javax.swing.*; public class JComboTest { JFrame f; JComboTest() { f=new JFrame("Combo ex"); String country[]={"India","Aus","U.S.A","England","Newzeland"}; JComboBox cb=new JComboBox(country); cb.setBounds(50, 50,90,20); f.add(cb); f.setLayout(null); f.setSize(400,500); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new JComboTest(); } } Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 20

Page 21: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 21

Page 22: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Buttons

• Swing buttons provide features that are not found in the Button class defined by the AWT. For example, we can associate an icon with a Swing button.

• Swing buttons are subclasses of the Abstract Button class, which extends JComponent.

• Abstract Button contains many methods that allow us to control the behavior of buttons, check box and radio buttons.

• For example, we can define different icons that are displayed for the component when it is disabled, pressed, or selected.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 22

Page 23: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Methods • void setDisabledIcon(Icon di) • void setPressedIcon(Icon pi) • void setSelectedIcon(Icon si) • void setRolloverIcon(Icon ri) • String getText( ) • void setText(String s) • String getActionCommand() - gets the text that is associated with a

button • void setActionCommand ()- sets the text that is associated with a

button Concrete subclasses of AbstractButton generate action events when they are pressed. Listeners register and un-register for these events via the methods • void addActionListener(ActionListener al) • void removeActionListener(ActionListener al)

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 23

Page 24: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

JButton

Constructors:

• JButton(Icon i)

• JButton(String s)

• JButton(String s, Icon i)

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 24

Page 25: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

import java.awt.*; import javax.swing.*; /*<applet code="JTextFieldDemo" width=250 height=300></applet>*/ public class JButtonDemo extends Japplet implements ActionListener { JTextField jtf; public void init() { Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout()); ImageIcon f = new ImageIcon("green.jpg"); JButton jb = new JButton(f); jb.setActionCommand("Green"); jb.addActionListener(this); contentPane.add(jb); ImageIcon g = new ImageIcon("red.jpg"); jb = new JButton(g); jb.setActionCommand("Red"); jb.addActionListener(this); contentPane.add(jb); ImageIcon i = new ImageIcon("yellow.jpg"); Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 25

Page 26: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

jb = new JButton(i); jb.setActionCommand("Yellow"); jb.addActionListener(this); contentPane.add(jb); ImageIcon j = new ImageIcon("black.jpg"); jb = new JButton(j); jb.setActionCommand("Black"); jb.addActionListener(this); contentPane.add(jb); jtf = new JTextField(15); contentPane.add(jtf); } public void actionPerformed(ActionEvent ae) { jtf.setText(ae.getActionCommand()); } }

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 26

Page 27: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

CheckBoxes Constructors: • JCheckBox(Icon i) • JCheckBox(Icon i, boolean state) • JCheckBox(String s) • JCheckBox(String s, boolean state) • JCheckBox(String s, Icon i) • JCheckBox(String s, Icon i, boolean state)

The state of the check box can be changed via the following method: • void setSelected(boolean state)

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 27

Page 28: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

import java.awt.*; import javax.swing.*; import java.awt.event.*; /*<applet code="JCheckBoxDemo" width=400 height=50></applet> */ public class JCheckBoxDemo extends JApplet implements ItemListener { JTextField jtf; public void init() { Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout()); JCheckBox cb = new JCheckBox("C", true); cb.addItemListener(this); contentPane.add(cb); cb = new JCheckBox("C++", false); cb.addItemListener(this); contentPane.add(cb); cb = new JCheckBox("Java", false); cb.addItemListener(this); contentPane.add(cb);

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 28

Page 29: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

cb = new JCheckBox("Perl", false); cb.addItemListener(this); contentPane.add(cb); jtf = new JTextField(15); contentPane.add(jtf); } public void itemStateChanged(ItemEvent ie) { JCheckBox cb = (JCheckBox)ie.getItem(); jtf.setText(cb.getText()); } }

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 29

Page 30: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

RadioButtons

Constructors:

• JRadioButton(Icon i)

• JRadioButton(Icon i, boolean state)

• JRadioButton(String s)

• JRadioButton(String s, boolean state)

• JRadioButton(String s, Icon i)

• JRadioButton(String s, Icon i, boolean state)

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 30

Page 31: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

• Radio button presses generate action events that are handled by:

actionPerformed().

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 31

Page 32: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

import java.awt.*; import javax.swing.*; Import java.awt.event.*; /*<applet code=" JRadioButtonDemo " width=400 height=50></applet> */ public class JRadioButtonDemo extends JApplet implements ActionListener { JTextField tf; public void init() { Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout()); JRadioButton b1 = new JRadioButton("A"); b1.addActionListener(this); contentPane.add(b1); JRadioButton b2 = new JRadioButton("B"); b2.addActionListener(this); contentPane.add(b2);

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 32

Page 33: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

JRadioButton b3 = new JRadioButton("C"); b3.addActionListener(this); contentPane.add(b3); ButtonGroup bg = new ButtonGroup(); bg.add(b1); bg.add(b2); bg.add(b3); tf = new JTextField(5); contentPane.add(tf); } public void actionPerformed(ActionEvent ae) { tf.setText(ae.getActionCommand()); } }

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 33

Page 34: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

JPanel

A panel is a swing container which is used for grouping components which is later on added to the frame. In java swing panel is implemented by JPanel class.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 34

Page 35: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Constructors of JPanel

JPanel()

Creates a panel.

JPanel(LayoutManager)

The LayoutManager parameter provides a layout manager for the new panel. By default, a panel uses a FlowLayout to lay out its components.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 35

Page 36: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

import javax.swing.*; import java.io.*; class B { public static void main(String arg[]) { JFrame f=new JFrame("this is my new frame"); JPanel p=new JPanel(); f.add(p); f.setSize(200,200); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 36

Page 37: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 37

Page 38: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

JTabbedPane

JTabbedPane is a container component that lets the user switch between pages by clicking on a tab.

A tabbed pane is a component that appears as a group of tabs. Each tab has a title. When a user selects a tab, its contents become visible. Only one of the tab may be selected at a time.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 38

Page 39: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Constructors for JTabbedPane

JTabbedPane() Creates an empty TabbedPane with a default tab placement of JTabbedPane.TOP.

JTabbedPane(int tabPlacement) Creates an empty TabbedPane with the specified tab placement of either: JTabbedPane.TOP, JTabbedPane.BOTTOM, JTabbedPane.LEFT, or JTabbedPane.RIGHT.

JTabbedPane(int tabPlacement, int tabLayoutPolicy) Creates an empty TabbedPane with the specified tab placement and tab layout policy.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 39

Page 40: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

The tab placement can be any of the following:

– JTabbedPane.TOP

– JTabbedPane.BOTTOM

– JTabbedPane.LEFT

– JTabbedPane.RIGHT

Tab layout policy may be either of the following:

– JTabbedPane.WRAP_TAB_LAYOUT

– JTabbedPane.SCROLL_TAB_LAYOUT

• Wrap tab policy-

• Scroll Tab Policy-

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 40

Page 41: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Tabs are defined via the following method: void addTab(String str, Component comp) Here, str is the title for the tab, and comp is the component that should be added to the tab. Typically, a JPanel or a subclass of it is added.

The general procedure to use a tabbed pane

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 41

Page 42: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

import javax.swing.*; /* <applet code="exp43" width=400 height=100> </applet> */ public class exp43 extends JApplet { public void init() { JTabbedPane exp43 = new JTabbedPane(); exp43.addTab(“Languages", new LangPanel()); exp43.addTab("Colors", new ColorsPanel()); exp43.addTab("Flavors", new FlavorsPanel()); add(exp43); } }

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 42

Page 43: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

class LangPanel extends JPanel { public LangPanel() { JButton b1 = new JButton("Marathi"); add(b1); JButton b2 = new JButton("Hindi"); add(b2); JButton b3 = new JButton("Bengali"); add(b3); JButton b4 = new JButton("Tamil"); add(b4); } }

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 43

Page 44: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

class ColorsPanel extends JPanel { public ColorsPanel() { JCheckBox cb1 = new JCheckBox("Red"); add(cb1); JCheckBox cb2 = new JCheckBox("Green"); add(cb2); JCheckBox cb3 = new JCheckBox("Blue"); add(cb3); } } class FlavorsPanel extends JPanel { public FlavorsPanel() { JComboBox jcb = new JComboBox(); jcb.addItem("Vanilla"); jcb.addItem("Chocolate"); jcb.addItem("Strawberry"); add(jcb); } } Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 44

Page 45: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 45

Page 46: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

JScrollPane

A 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. i.e. It represents a scrollpane which is a rectangular area in which a component may be viewed.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 46

Page 47: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 47

Page 48: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Constructors of JScrollPane

JScrollPane() Create a scroll pane JScrollPane(Component com) com is component which is added to scroll

pane. JScrollPane(int vsb, int hsb) vasb and hsb are int constants for controlling

vertical and horizontal scrolling. JScrollPane(Component com, int vsb, int hsb)

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 48

Page 49: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

int constants vsb nad hsb can have the values:

• VERTICAL_SCROLLBAR_ALWAYS

– Vertical scroll bar is always provided.

• HORIZONTAL_SCROLLBAR_ALWAYS

– Horizontal scroll bar is always provided.

• VERTICAL_SCROLLBAR_AS_NEEDED

– Vertical scroll bar is provided as per the need.

• HORIZONTAL_SCROLLBAR_AS_NEEDED

– Horizontal scroll bar is provided as per the need.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 49

Page 50: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

import javax.swing.*; import java.awt.*; /*<applet code="JScrollPaneDemo" width=300 height=250></applet> */ public class JScrollPaneDemo extends JApplet { public void init() { Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout()); JPanel jp = new JPanel(); jp.setLayout(new GridLayout(20, 20)); int b = 0; for(int i = 0; i < 20; i++) { for(int j = 0; j < 20; j++) { jp.add(new JButton("Button " + b)); ++b; } }

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 50

Page 51: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;

int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;

JScrollPane jsp = new JScrollPane(jp, v, h);

contentPane.add(jsp, BorderLayout.CENTER);

}

}

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 51

Page 52: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

JTree The JTree class is used to display the tree structured

data or hierarchical data. JTree is a complex component. It has a 'root node' at the top most which is a parent for all nodes in the tree. It inherits JComponent class.

Here is a picture of a tree:

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 52

Page 53: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

The java.swing package provides the JTree and its component. JTree: The tree is a special type of graph that designed for displaying data with the hierarchical properties by adding nodes to nodes and keeps the concept of parent and child node. Node: A node is an object at any position within the JTree where the data are associated or being represented. Path: The path is the collection of contiguous set of nodes that contains one or many nodes. The path is empty or null when the path has not any node. Leaf: This is a special types of node at the end of a path. The leaf node has not connected to more nodes. Root: This is the node of highest point within the hierarchy in tree. Parent: It represents the relationship of node with another node.

Child: It represents the relationship of node with another node. Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 53

Page 54: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Constructors Of JTree

• JTree(Object[] value)

– Returns a JTree with each element of the specified array as the child of a new root node which is not displayed. Each element of the array object is childnode.

• JTree(TreeNode root)

– Returns a JTree with the specified TreeNode as its root, which displays the root node. Treenode tn is the root of the tree.

• JTree(Vector v)

– Returns a JTree with each element of the specified Vector as the child of a new root node which is not displayed. Elements of vector v is the childnode

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 54

Page 55: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

• It is possible to obtain a reference to the parent node.

• The ‘MutableTreeNode’ interface extends ‘TreeNode’, which is an interface that declares methods that obtain information about a tree node.

• The ‘DefaultMutableTreeNode’ class implements the ‘MutableTreeNode’ interface. It represents a node in a tree.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 55

Page 56: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Methods used with JTree DefaultMutableTreeNode(object obj)

where ‘obj’ is the object to be enclosed in this tree node.

void add(MutableTreeNode child)

This method can be used to create the hierarchy of nodes .where ‘child’ is the mutable treenode this is to be added as a child to the current node.

TreePath getPathForLocation(int x, int y)

It is used to translate a mouse click on a point of tree to a tree path. Where, x and y are coordinates of mouse click.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 56

Page 57: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

import javax.swing.*; import javax.swing.tree.DefaultMutableTreeNode; public class TreeExample { JFrame f; TreeExample() { f=new JFrame(); DefaultMutableTreeNode style=new DefaultMutableTreeNode("Style"); DefaultMutableTreeNode color=new DefaultMutableTreeNode("color"); DefaultMutableTreeNode font=new DefaultMutableTreeNode("font"); style.add(color); style.add(font); DefaultMutableTreeNode red=new DefaultMutableTreeNode("red"); DefaultMutableTreeNode blue=new DefaultMutableTreeNode("blue"); DefaultMutableTreeNode black=new DefaultMutableTreeNode("black"); DefaultMutableTreeNode green=new DefaultMutableTreeNode("green"); color.add(red); color.add(blue); color.add(black); color.add(green); Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 57

Page 58: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

JTree jt=new JTree(style); f.add(jt); f.setSize(200,200); f.setVisible(true); } public static void main(String[] args) { new TreeExample(); } }

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 58

Page 59: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

JTable

The JTable class is used to display the data on two dimensional tables of cells.

Constructors of JTable class:

JTable()

creates a table with empty cells.

JTable(Object[] rows, Object[] columns)

creates a table with the specified data.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 59

Page 60: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

import javax.swing.*; public class MyJTable extends JFrame { MyJTable() { String data[][]={ {"101","Umesh","670000"}, {"102","Vijay","780000"}, {"101","Rahul","700000"}}; String column[]={"ID","NAME","SALARY"}; JTable jt=new JTable(data,column); jt.setBounds(30,40,200,300); JScrollPane sp=new JScrollPane(jt); add(sp); setSize(300,400); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new MyJTable(); } } Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 60

Page 61: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 61

Page 62: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

JProgressBar

The class JProgressBar is a component which visually displays the progress of some task.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 62

Page 63: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Constructors of JProgessBar

JProgressBar() Creates a horizontal progress bar that displays a

border but no progress string. JProgressBar(int orient) Creates a progress bar with the specified

orientation, which can be either SwingConstants. VERTICAL or SwingConstants.HORIZONTAL.

JProgressBar(int min, int max) Creates a horizontal progress bar with the

specified minimum and maximum values. JProgressBar(int orient, int min, int max) Creates a progress bar using the specified

orientation, minimum and maximum values.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 63

Page 64: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Methods used with JProgressBar

• void setStringPainted(boolean b) – determines whether the progress bar should display a

progress string.

• int getMaximum() – Returns the progress bar's maximum value

• int getMinimum() – Returns the progress bar's minimum value from the

BoundedRangeModel.

• int getOrientation() – Returns SwingConstants.VERTICAL or

SwingConstants.HORIZONTAL, depending on the orientation of the progress bar.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 64

Page 65: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

import javax.swing.*; public class MyProgress extends Jframe { JProgressBar jb; int i=0,num=0; MyProgress() { jb=new JProgressBar(0,2000); jb.setBounds(40,40,200,30); jb.setValue(0); jb.setStringPainted(true); add(jb); setSize(400,400); setLayout(null); } setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

public void iterate() { while(i<=2000) { jb.setValue(i); i=i+20; try { Thread.sleep(150); } catch(Exception e){} } } public static void main(String[] args) { MyProgress m=new MyProgress(); m.setVisible(true); m.iterate(); } } Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 65

Page 66: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 66

Page 67: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

ToolTip

Tooltip text is normally one line long. The setToolTipText() method from JComponent used to create a tooltip.

public void setToolTipText(String text)

-Registers the text to display in a tool tip. The text displays when the cursor lingers over the component.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 67

Page 68: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 68

Page 69: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

MVC Architecture Swing API architecture follows MVC

architecture. The MVC design pattern consists of three modules: model, view and controller.

Model -The model represents the state (data) and business logic of the application.

View -The view module is responsible to display data i.e. it represents the presentation.

Controller -The controller module acts as an interface between view and model. It intercepts all the requests i.e. receives input and commands to Model / View to change accordingly.

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 69

Page 70: Introduction to Swing - WordPress.com · Difference between AWT and Swing N o. Java AWT Java Swing 1 AWT components are platform-dependent. Java swing components are platform-independent

UML Diagram MVC Design Pattern

Department of Computer Engg. AJP: Unit-II Mrs. Chavan P.P. 70