Java Swing Tutorial and Examples
Java Swing Tutorial and Examples
Java Swing tutorial is a part of Java Foundation Classes (JFC) that is used to create
window-based applications. It is built on the top of AWT (Abstract Windowing Toolkit) API
and entirely written in java.
The [Link] package provides classes for java swing API such as JButton, JTextField,
JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser etc.
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
components such as tables, lists,
scrollpanes, colorchooser,
tabbedpane etc.
What is JFC
The Java Foundation Classes (JFC) are a set of GUI components which simplify the
development of desktop applications.
Do You Know
o How to create runnable jar file in java?
o How to display image on a button in swing?
o How to change the component color by choosing a color from ColorChooser ?
o How to display the digital watch in swing tutorial ?
o How to create a notepad in swing?
o How to create puzzle game and pic puzzle game in swing ?
o How to create tic tac toe game in swing ?
Method Description
public void setLayout(LayoutManager sets the layout manager for the component.
m)
We can write the code of swing inside the main(), constructor or any other method.
File: [Link]
1. import [Link].*;
2. public class FirstSwingExample {
3. public static void main(String[] args) {
4. JFrame f=new JFrame();//creating instance of JFrame
5.
6. JButton b=new JButton("click");//creating instance of JButton
7. [Link](130,100,100, 40);//x axis, y axis, width, height
8.
9. [Link](b);//adding button in JFrame
10.
11. [Link](400,500);//400 width and 500 height
12. [Link](null);//using no layout managers
13. [Link](true);//making the frame visible
14. }
15. }
File: [Link]
1. import [Link].*;
2. public class Simple {
3. JFrame f;
4. Simple(){
5. f=new JFrame();//creating instance of JFrame
6.
7. JButton b=new JButton("click");//creating instance of JButton
8. [Link](130,100,100, 40);
9.
10. [Link](b);//adding button in JFrame
11.
12. [Link](400,500);//400 width and 500 height
13. [Link](null);//using no layout managers
14. [Link](true);//making the frame visible
15. }
16.
17. public static void main(String[] args) {
18. new Simple();
19. }
20. }
The setBounds(int xaxis, int yaxis, int width, int height)is used in the above example that
sets the position of the button.
File: [Link]
1. import [Link].*;
2. public class Simple2 extends JFrame{//inheriting JFrame
3. JFrame f;
4. Simple2(){
5. JButton b=new JButton("click");//create button
6. [Link](130,100,100, 40);
7.
8. add(b);//adding button on frame
9. setSize(400,500);
10. setLayout(null);
11. setVisible(true);
12. }
13. public static void main(String[] args) {
14. new Simple2();
15. }}
download this example
What we will learn in Swing Tutorial
o JButton class
o JRadioButton class
o JTextArea class
o JComboBox class
o JTable class
o JColorChooser class
o JProgressBar class
o JSlider class
o Digital Watch
o Graphics in swing
o Displaying image
o Edit menu code for Notepad
o OpenDialog Box
o Notepad
o Puzzle Game
o Pic Puzzle Game
o Tic Tac Toe Game
o BorderLayout
o GridLayout
o FlowLayout
o CardLayout
Java JButton
The JButton class is used to create a labeled button that has platform independent
implementation. The application result in some action when the button is pushed. It
inherits AbstractButton class.
Constructor Description
Methods Description
Output:
Output:
Output:
Java JLabel
The object of JLabel class is a component for placing text in a container. It is used to
display a single line of read only text. The text can be changed by an application but a
user cannot edit it directly. It inherits JComponent class.
Constructor Description
JLabel(String s, Icon i, int Creates a JLabel instance with the specified text, image,
horizontalAlignment) and horizontal alignment.
Methods Description
String getText() t returns the text string that a label displays.
void setText(String text) It defines the single line of text this component will
display.
void setHorizontalAlignment(int It sets the alignment of the label's contents along the
alignment) X axis.
Icon getIcon() It returns the graphic image that the label displays.
Output:
Java JLabel Example with ActionListener
1. import [Link].*;
2. import [Link].*;
3. import [Link].*;
4. public class LabelExample extends Frame implements ActionListener{
5. JTextField tf; JLabel l; JButton b;
6. LabelExample(){
7. tf=new JTextField();
8. [Link](50,50, 150,20);
9. l=new JLabel();
10. [Link](50,100, 250,20);
11. b=new JButton("Find IP");
12. [Link](50,150,95,30);
13. [Link](this);
14. add(b);add(tf);add(l);
15. setSize(400,400);
16. setLayout(null);
17. setVisible(true);
18. }
19. public void actionPerformed(ActionEvent e) {
20. try{
21. String host=[Link]();
22. String ip=[Link](host).getHostAddress();
23. [Link]("IP of "+host+" is: "+ip);
24. }catch(Exception ex){[Link](ex);}
25. }
26. public static void main(String[] args) {
27. new LabelExample();
28. }}
Output:
Next Topic Java JTextField
Java JTextField
The object of a JTextField class is a text component that allows the editing of a single line
text. It inherits JTextComponent class.
Constructor Description
JTextField(String text) Creates a new TextField initialized with the specified text.
JTextField(String text, int Creates a new TextField initialized with the specified text and
columns) columns.
JTextField(int columns) Creates a new empty TextField with the specified number of
columns.
Methods Description
Action getAction() It returns the currently set Action for this ActionEvent
source, or null if no Action is set.
void setFont(Font f) It is used to set the current font.
Output:
Output:
Java JTextArea
The object of a JTextArea class is a multi line region that displays text. It allows the editing
of multiple line text. It inherits JTextComponent class
Constructor Description
JTextArea(int row, int column) Creates a text area with the specified number of rows and
columns that displays no text initially.
JTextArea(String s, int row, int Creates a text area with the specified number of rows and
column) columns that displays specified text.
void insert(String s, int position) It is used to insert the specified text on the specified position.
void append(String s) It is used to append the given text to the end of the document.
Output:
Java JTextArea Example with ActionListener
1. import [Link].*;
2. import [Link].*;
3. public class TextAreaExample implements ActionListener{
4. JLabel l1,l2;
5. JTextArea area;
6. JButton b;
7. TextAreaExample() {
8. JFrame f= new JFrame();
9. l1=new JLabel();
10. [Link](50,25,100,30);
11. l2=new JLabel();
12. [Link](160,25,100,30);
13. area=new JTextArea();
14. [Link](20,75,250,200);
15. b=new JButton("Count Words");
16. [Link](100,300,120,30);
17. [Link](this);
18. [Link](l1);[Link](l2);[Link](area);[Link](b);
19. [Link](450,450);
20. [Link](null);
21. [Link](true);
22. }
23. public void actionPerformed(ActionEvent e){
24. String text=[Link]();
25. String words[]=[Link]("\\s");
26. [Link]("Words: "+[Link]);
27. [Link]("Characters: "+[Link]());
28. }
29. public static void main(String[] args) {
30. new TextAreaExample();
31. }
32. }
Output:
Java JPasswordField
The object of a JPasswordField class is a text component specialized for password entry.
It allows the editing of a single line of text. It inherits JTextField class.
Constructor Description
JPasswordField(String text, int Construct a new JPasswordField initialized with the specified
columns) text and columns.
Output:
Output:
Java JCheckBox
The JCheckBox class is used to create a checkbox. It is used to turn an option on (true) or
off (false). Clicking on a CheckBox changes its state from "on" to "off" or from "off" to "on
".It inherits JToggleButton class.
JCheckBox(String text, boolean Creates a check box with text and specifies whether or not it
selected) is initially selected.
JCheckBox(Action a) Creates a check box where properties are taken from the
Action supplied.
Methods Description
Output:
Output:
Java JRadioButton
The JRadioButton class is used to create a radio button. It is used to choose one option
from multiple options. It is widely used in exam systems or quiz.
Constructor Description
JRadioButton(String s, boolean Creates a radio button with the specified text and
selected) selected status.
Methods Description
Output:
Java JRadioButton Example with ActionListener
1. import [Link].*;
2. import [Link].*;
3. class RadioButtonExample extends JFrame implements ActionListener{
4. JRadioButton rb1,rb2;
5. JButton b;
6. RadioButtonExample(){
7. rb1=new JRadioButton("Male");
8. [Link](100,50,100,30);
9. rb2=new JRadioButton("Female");
10. [Link](100,100,100,30);
11. ButtonGroup bg=new ButtonGroup();
12. [Link](rb1);[Link](rb2);
13. b=new JButton("click");
14. [Link](100,150,80,30);
15. [Link](this);
16. add(rb1);add(rb2);add(b);
17. setSize(300,300);
18. setLayout(null);
19. setVisible(true);
20. }
21. public void actionPerformed(ActionEvent e){
22. if([Link]()){
23. [Link](this,"You are Male.");
24. }
25. if([Link]()){
26. [Link](this,"You are Female.");
27. }
28. }
29. public static void main(String args[]){
30. new RadioButtonExample();
31. }}
Output:
Java JComboBox
The object of Choice class is used to show popup menu of choices. Choice selected by
user is shown on the top of a menu. It inherits JComponent class.
Constructor Description
Methods Description
void addItem(Object anObject) It is used to add an item to the item list.
void removeAllItems() It is used to remove all the items from the list.
Output:
Java JComboBox Example with ActionListener
1. import [Link].*;
2. import [Link].*;
3. public class ComboBoxExample {
4. JFrame f;
5. ComboBoxExample(){
6. f=new JFrame("ComboBox Example");
7. final JLabel label = new JLabel();
8. [Link]([Link]);
9. [Link](400,100);
10. JButton b=new JButton("Show");
11. [Link](200,100,75,20);
12. String languages[]={"C","C++","C#","Java","PHP"};
13. final JComboBox cb=new JComboBox(languages);
14. [Link](50, 100,90,20);
15. [Link](cb); [Link](label); [Link](b);
16. [Link](null);
17. [Link](350,350);
18. [Link](true);
19. [Link](new ActionListener() {
20. public void actionPerformed(ActionEvent e) {
21. String data = "Programming language Selected: "
22. + [Link]([Link]());
23. [Link](data);
24. }
25. });
26. }
27. public static void main(String[] args) {
28. new ComboBoxExample();
29. }
30. }
Output:
Java JTable
The JTable class is used to display data in tabular form. It is composed of rows and
columns.
Constructor Description
JTable(Object[][] rows, Object[] columns) Creates a table with the specified data.
Output:
Output:
If you select an element in column NAME, name of the element will be displayed on the
console:
Java JList
The object of JList class represents a list of text items. The list of text items can be set up
so that the user can choose either one item or multiple items. It inherits JComponent
class.
Constructor Description
JList(ary[] listData) Creates a JList that displays the elements in the specified array.
JList(ListModel<ary> Creates a JList that displays elements from the specified, non-
dataModel) null, model.
Methods Description
Output:
1. import [Link].*;
2. import [Link].*;
3. public class ListExample
4. {
5. ListExample(){
6. JFrame f= new JFrame();
7. final JLabel label = new JLabel();
8. [Link](500,100);
9. JButton b=new JButton("Show");
10. [Link](200,150,80,30);
11. final DefaultListModel<String> l1 = new DefaultListModel<>();
12. [Link]("C");
13. [Link]("C++");
14. [Link]("Java");
15. [Link]("PHP");
16. final JList<String> list1 = new JList<>(l1);
17. [Link](100,100, 75,75);
18. DefaultListModel<String> l2 = new DefaultListModel<>();
19. [Link]("Turbo C++");
20. [Link]("Struts");
21. [Link]("Spring");
22. [Link]("YII");
23. final JList<String> list2 = new JList<>(l2);
24. [Link](100,200, 75,75);
25. [Link](list1); [Link](list2); [Link](b); [Link](label);
26. [Link](450,450);
27. [Link](null);
28. [Link](true);
29. [Link](new ActionListener() {
30. public void actionPerformed(ActionEvent e) {
31. String data = "";
32. if ([Link]() != -1) {
33. data = "Programming language Selected: " + [Link]();
34. [Link](data);
35. }
36. if([Link]() != -1){
37. data += ", FrameWork Selected: ";
38. for(Object frame :[Link]()){
39. data += frame + " ";
40. }
41. }
42. [Link](data);
43. }
44. });
45. }
46. public static void main(String args[])
47. {
48. new ListExample();
49. }}
Output:
Java JOptionPane
The JOptionPane class is used to provide standard dialog boxes such as message dialog
box, confirm dialog box and input dialog box. These dialog boxes are used to display
information or get input from the user. The JOptionPane class inherits JComponent class.
Constructor Description
Methods Description
void setInputValue(Object newValue) It is used to set the input value that was
selected or input by the user.
Output:
Output:
Output:
Java JOptionPane Example: showConfirmDialog()
1. import [Link].*;
2. import [Link].*;
3. public class OptionPaneExample extends WindowAdapter{
4. JFrame f;
5. OptionPaneExample(){
6. f=new JFrame();
7. [Link](this);
8. [Link](300, 300);
9. [Link](null);
10. [Link](JFrame.DO_NOTHING_ON_CLOSE);
11. [Link](true);
12. }
13. public void windowClosing(WindowEvent e) {
14. int a=[Link](f,"Are you sure?");
15. if(a==JOptionPane.YES_OPTION){
16. [Link](JFrame.EXIT_ON_CLOSE);
17. }
18. }
19. public static void main(String[] args) {
20. new OptionPaneExample();
21. }
22. }
Output:
Java JScrollBar
The object of JScrollbar class is used to add horizontal and vertical scrollbar. It is an
implementation of a scrollbar. It inherits JComponent class.
JScrollBar class declaration
Let's see the declaration for [Link] class.
Constructor Description
JScrollBar(int orientation, int value, int Creates a scrollbar with the specified orientation,
extent, int min, int max) value, extent, minimum, and maximum.
Output:
Next Topic ava JMenuItem and JMenu
The object of JMenu class is a pull down menu component which is displayed from the
menu bar. It inherits the JMenuItem class.
The object of JMenuItem class adds a simple labeled menu item. The items used in a menu
must belong to the JMenuItem or any of its subclass.
Output:
Output:
ava JPopupMenu
PopupMenu can be dynamically popped up at specific position within a component. It
inherits the JComponent class.
Constructor Description
Output:
Output:
ava JCheckBoxMenuItem
JCheckBoxMenuItem class represents checkbox which can be included on a menu . A
CheckBoxMenuItem can have text or a graphic icon or both, associated with
it. MenuItem can be selected or deselected. MenuItems can be configured and controlled
by actions.
Nested class
Constructor
Constructor Description
JCheckBoxMenuItem() It creates an initially unselected check box menu
item with no set text or icon.
JCheckBoxMenuItem(String text, boolean It creates a check box menu item with the specified
b) text and selection state.
JCheckBoxMenuItem(String text, Icon It creates a check box menu item with the specified
icon, boolean b) text, icon, and selection state.
Methods
String getUIClassID() It returns the name of the L&F class that renders
this component.
Output:
Java JSeparator
The object of JSeparator class is used to provide a general purpose component for
implementing divider lines. It is used to draw a line to separate widgets in a Layout. It
inherits JComponent class.
Constructor Description
Method Description
Output:
Output:
Next Topic Java JProgressBar
Java JProgressBar
The JProgressBar class is used to display the progress of the task. It inherits JComponent
class.
Constructor Description
JProgressBar(int min, It is used to create a horizontal progress bar with the specified minimum
int max) and maximum value.
JProgressBar(int It is used to create a progress bar with the specified orientation, it can
orient) be either Vertical or Horizontal by using [Link] and
[Link] constants.
Method Description
void It is used to determine whether string should be displayed.
setStringPainted(boolean b)
void setValue(int value) It is used to set the current value on the progress bar.
Output:
Java 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.
Constructor Description
JTree(Object[] Creates a JTree with every element of the specified array as the child of a
value) new root node.
JTree(TreeNode Creates a JTree with the specified TreeNode as its root, which displays the
root) root node.
Output:
Java JColorChooser
The JColorChooser class is used to create a color chooser dialog box so that user can
select any color. It inherits JComponent class.
JColorChooser class declaration
Let's see the declaration for [Link] class.
Constructor Description
JColorChooser() It is used to create a color chooser panel with white color initially.
JColorChooser(color It is used to create a color chooser panel with the specified color
initialcolor) initially.
Method Description
static Color showDialog(Component c, String title, Color It is used to show the color chooser
initialColor) dialog box.
Output:
Constructor Description
Output:
Output:
Java JColorChooser
The JColorChooser class is used to create a color chooser dialog box so that user can
select any color. It inherits JComponent class.
Constructor Description
JColorChooser() It is used to create a color chooser panel with white color initially.
JColorChooser(color It is used to create a color chooser panel with the specified color
initialcolor) initially.
Method Description
Output:
Java JColorChooser Example with ActionListener
1. import [Link].*;
2. import [Link].*;
3. import [Link].*;
4. public class ColorChooserExample extends JFrame implements ActionListener{
5. JFrame f;
6. JButton b;
7. JTextArea ta;
8. ColorChooserExample(){
9. f=new JFrame("Color Chooser Example.");
10. b=new JButton("Pad Color");
11. [Link](200,250,100,30);
12. ta=new JTextArea();
13. [Link](10,10,300,200);
14. [Link](this);
15. [Link](b);[Link](ta);
16. [Link](null);
17. [Link](400,400);
18. [Link](true);
19. }
20. public void actionPerformed(ActionEvent e){
21. Color c=[Link](this,"Choose",[Link]);
22. [Link](c);
23. }
24. public static void main(String[] args) {
25. new ColorChooserExample();
26. }
27. }
Output:
Next Topic Java JTabbedPane
Java JSlider
The Java JSlider class is used to create the slider. By using JSlider, a user can select a value
from a specific range.
Constructor Description
JSlider() creates a slider with the initial value of 50 and range of 0 to 100.
JSlider(int orientation) creates a slider with the specified orientation set by either
[Link] or [Link] with the range 0 to 100
and initial value 50.
JSlider(int min, int max) creates a horizontal slider using the given min and max.
JSlider(int min, int max, int creates a horizontal slider using the given min, max and value.
value)
JSlider(int orientation, int creates a slider using the given orientation, min, max and value.
min, int max, int value)
Method Description
public void setMinorTickSpacing(int n) is used to set the minor tick spacing to the slider.
public void setMajorTickSpacing(int n) is used to set the major tick spacing to the slider.
public void setPaintTicks(boolean b) is used to determine whether tick marks are painted.
1. import [Link].*;
2. public class SliderExample1 extends JFrame{
3. public SliderExample1() {
4. JSlider slider = new JSlider([Link], 0, 50, 25);
5. JPanel panel=new JPanel();
6. [Link](slider);
7. add(panel);
8. }
9.
10. public static void main(String s[]) {
11. SliderExample1 frame=new SliderExample1();
12. [Link]();
13. [Link](true);
14. }
15. }
Output:
1. import [Link].*;
2. public class SliderExample extends JFrame{
3. public SliderExample() {
4. JSlider slider = new JSlider([Link], 0, 50, 25);
5. [Link](2);
6. [Link](10);
7. [Link](true);
8. [Link](true);
9.
10. JPanel panel=new JPanel();
11. [Link](slider);
12. add(panel);
13. }
14. public static void main(String s[]) {
15. SliderExample frame=new SliderExample();
16. [Link]();
17. [Link](true);
18. }
19. }
Output:
Java JSpinner
The object of JSpinner class is a single line input field that allows the user to select a
number or an object value from an ordered sequence.
Constructor Description
Method Description
Output:
Java JSpinner Example with ChangeListener
imp
1. ort [Link].*;
2. import [Link].*;
3. public class SpinnerExample {
4. public static void main(String[] args) {
5. JFrame f=new JFrame("Spinner Example");
6. final JLabel label = new JLabel();
7. [Link]([Link]);
8. [Link](250,100);
9. SpinnerModel value =
10. new SpinnerNumberModel(5, //initial value
11. 0, //minimum value
12. 10, //maximum value
13. 1); //step
14. JSpinner spinner = new JSpinner(value);
15. [Link](100,100,50,30);
16. [Link](spinner); [Link](label);
17. [Link](300,300);
18. [Link](null);
19. [Link](true);
20. [Link](new ChangeListener() {
21. public void stateChanged(ChangeEvent e) {
22. [Link]("Value : " + ((JSpinner)[Link]()).getValue());
23. }
24. });
25. }
26. }
Output:
Next Topic Java JDialog
ava JDialog
The JDialog control represents a top level window with a border and a title used to take
some form of input from the user. It inherits the Dialog class.
Constructor Description
JDialog(Frame owner, String title, It is used to create a dialog with the specified title, owner
boolean modal) Frame and modality.
Output:
Java JPanel
The JPanel is a simplest container class. It provides space in which an application can
attach any other component. It inherits the JComponents class.
Constructor Description
JPanel() It is used to create a new JPanel with a double buffer and a flow
layout.
JPanel(LayoutManager layout) It is used to create a new JPanel with the specified layout
manager.
Output:
Java JFileChooser
The object of JFileChooser class represents a dialog window from which the user can select
file. It inherits JComponent class.
Constructor Description
Output:
Java JToggleButton
JToggleButton is used to create toggle button, it is two-states button to switch on or off.
Nested Classes
Modifier Class Description
and Type
Constructors
Constructor Description
JToggleButton(Icon icon, boolean It creates a toggle button with the specified image and
selected) selection state, but no text.
JToggleButton(String text, boolean It creates a toggle button with the specified text and
selected) selection state.
JToggleButton(String text, Icon icon) It creates a toggle button that has the specified text and
image, and that is initially unselected.
JToggleButton(String text, Icon icon, It creates a toggle button with the specified text, image,
boolean selected) and selection state.
Methods
Modifier and Method Description
Type
JToggleButton Example
1. import [Link];
2. import [Link];
3. import [Link];
4. import [Link];
5. import [Link];
6.
7. public class JToggleButtonExample extends JFrame implements ItemListener {
8. public static void main(String[] args) {
9. new JToggleButtonExample();
10. }
11. private JToggleButton button;
12. JToggleButtonExample() {
13. setTitle("JToggleButton with ItemListener Example");
14. setLayout(new FlowLayout());
15. setJToggleButton();
16. setAction();
17. setSize(200, 200);
18. setVisible(true);
19. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
20. }
21. private void setJToggleButton() {
22. button = new JToggleButton("ON");
23. add(button);
24. }
25. private void setAction() {
26. [Link](this);
27. }
28. public void itemStateChanged(ItemEvent eve) {
29. if ([Link]())
30. [Link]("OFF");
31. else
32. [Link]("ON");
33. }
34. }
Output
Java JToolBar
JToolBar container allows us to group other components, usually buttons with icons in a
row or column. JToolBar provides a component which is useful for displaying commonly
used actions or controls.
Nested Classes
Constructor Description
JToolBar(int orientation) It creates a new tool bar with the specified orientation.
JToolBar(String name) It creates a new tool bar with the specified name.
JToolBar(String name, int It creates a new tool bar with a specified name and
orientation) orientation.
Useful Methods
Output:
Java JToolBar
JToolBar container allows us to group other components, usually buttons with icons in a
row or column. JToolBar provides a component which is useful for displaying commonly
used actions or controls.
Nested Classes
Constructors
Constructor Description
JToolBar(int orientation) It creates a new tool bar with the specified orientation.
JToolBar(String name) It creates a new tool bar with the specified name.
JToolBar(String name, int It creates a new tool bar with a specified name and
orientation) orientation.
Useful Methods
Output:
Next Topic Java JViewPort
Java JFrame
The [Link] class is a type of container which inherits the [Link] class.
JFrame works like the main window where components like labels, buttons, textfields are
added to create a GUI.
Unlike Frame, JFrame has the option to hide or close the window with the help of
setDefaultCloseOperation(int) method.
Nested Class
Fields
protected boolean rootPaneCheckingEnabled If true then calls to add and setLayout will be
forwarded to the contentPane.
Constructors
Constructor Description
JFrame(String title) It creates a new, initially invisible Frame with the specified
title.
JFrame(String title, It creates a JFrame with the specified title and the
GraphicsConfiguration gc) specified GraphicsConfiguration of a screen device.
Useful Methods
JFrame Example
1. import [Link];
2. import [Link];
3. import [Link];
4. import [Link];
5. import [Link];
6. public class JFrameExample {
7. public static void main(String s[]) {
8. JFrame frame = new JFrame("JFrame Example");
9. JPanel panel = new JPanel();
10. [Link](new FlowLayout());
11. JLabel label = new JLabel("JFrame By Example");
12. JButton button = new JButton();
13. [Link]("Button");
14. [Link](label);
15. [Link](button);
16. [Link](panel);
17. [Link](200, 300);
18. [Link](null);
19. [Link](JFrame.EXIT_ON_CLOSE);
20. [Link](true);
21. }
22. }
Output
Java JComponent
The JComponent class is the base class of all Swing components except top-level
containers. Swing components whose names begin with "J" are descendants of the
JComponent class. For example, JButton, JScrollPane, JPanel, JTable etc. But, JFrame and
JDialog don't inherit JComponent class because they are the child of top-level containers.
The JComponent class extends the Container class which itself extends Component. The
Container class has support for adding components to the container.
Fields
Constructor
Constructor Description
Useful Methods
protected void setUI(ComponentUI newUI) It sets the look and feel delegate for this
component.
Output:
Java JDesktopPane
The JDesktopPane class, can be used to create "multi-document" applications. A multi-
document application can have many windows included in it. We do it by making the
contentPane in the main window as an instance of the JDesktopPane class or a subclass.
Internal windows add instances of JInternalFrame to the JdesktopPane instance. The
internal windows are the instances of JInternalFrame or its subclasses.
Fields
static int LIVE_DRAG_MODE It indicates that the entire contents of the item being
dragged should appear inside the desktop pane.
static int OUTLINE_DRAG_MODE It indicates that an outline only of the item being
dragged should appear inside the desktop pane.
Constructor
Constructor Description
Output:
Next Topic Java JEditorPane
Java JEditorPane
JEditorPane class is used to create a simple text editor window. This class has
setContentType() and setText() methods.
Nested Classes
Fields
Constructors
Constructor Description
JEditorPane(String type, String It creates a JEditorPane that has been initialized to the given
text) text.
Useful Methods
void read(InputStream in, Object desc) This method initializes from a stream.
void read(InputStream in, Object desc) This method initializes from a stream.
JEditorPane Example
1. import [Link];
2. import [Link];
3.
4. public class JEditorPaneExample {
5. JFrame myFrame = null;
6.
7. public static void main(String[] a) {
8. (new JEditorPaneExample()).test();
9. }
10.
11. private void test() {
12. myFrame = new JFrame("JEditorPane Test");
13. [Link](JFrame.EXIT_ON_CLOSE);
14. [Link](400, 200);
15. JEditorPane myPane = new JEditorPane();
16. [Link]("text/plain");
17. [Link]("Sleeping is necessary for a healthy body."
18. + " But sleeping in unnecessary times may spoil our health, wealth and studies
."
19. + " Doctors advise that the sleeping at improper timings may lead for obesity
during the students days.");
20. [Link](myPane);
21. [Link](true);
22. }
23. }
Output:
Output:
Java JScrollPane
A JscrollPane is used to make scrollable view of a component. When screen size is limited,
we use a scroll pane to display a large component or a component whose size can change
dynamically.
Constructors
Constructor Purpose
JScrollPane(int, int)
JScrollPane(Component,
int, int)
Useful Methods
Modifier Method Description
void setColumnHeaderView(Component) It sets the column header for the scroll pane.
void setRowHeaderView(Component) It sets the row header for the scroll pane.
void setCorner(String, Component) It sets or gets the specified corner. The int
parameter specifies which corner and must
Component getCorner(String) be one of the following constants defined in
ScrollPaneConstants: UPPER_LEFT_CORNER,
UPPER_RIGHT_CORNER,
LOWER_LEFT_CORNER,
LOWER_RIGHT_CORNER,
LOWER_LEADING_CORNER,
LOWER_TRAILING_CORNER,
UPPER_LEADING_CORNER,
UPPER_TRAILING_CORNER.
JScrollPane Example
1. import [Link];
2. import [Link];
3. import [Link];
4. import [Link];
5.
6. public class JScrollPaneExample {
7. private static final long serialVersionUID = 1L;
8.
9. private static void createAndShowGUI() {
10.
11. // Create and set up the window.
12. final JFrame frame = new JFrame("Scroll Pane Example");
13.
14. // Display the window.
15. [Link](500, 500);
16. [Link](true);
17. [Link](JFrame.EXIT_ON_CLOSE);
18.
19. // set flow layout for the frame
20. [Link]().setLayout(new FlowLayout());
21.
22. JTextArea textArea = new JTextArea(20, 20);
23. JScrollPane scrollableTextArea = new JScrollPane(textArea);
24.
25. [Link](JScrollPane.HORIZONTAL_SCROLLB
AR_ALWAYS);
26. [Link](JScrollPane.VERTICAL_SCROLLBAR_AL
WAYS);
27.
28. [Link]().add(scrollableTextArea);
29. }
30. public static void main(String[] args) {
31.
32.
33. [Link](new Runnable() {
34.
35. public void run() {
36. createAndShowGUI();
37. }
38. });
39. }
40. }
Output:
The two components in a split pane can be aligned left to right using
JSplitPane.HORIZONTAL_SPLIT, or top to bottom using JSplitPane.VERTICAL_SPLIT. When
the user is resizing the components the minimum size of the components is used to
determine the maximum/minimum position the components can be set to.
Nested Class
Useful Fields
Constructors
Constructor Description
Useful Methods
JSplitPane Example
1. import [Link];
2. import [Link];
3. import [Link];
4. import [Link];
5. import [Link];
6. public class JSplitPaneExample {
7. private static void createAndShow() {
8. // Create and set up the window.
9. final JFrame frame = new JFrame("JSplitPane Example");
10. // Display the window.
11. [Link](300, 300);
12. [Link](true);
13. [Link](JFrame.EXIT_ON_CLOSE);
14. // set flow layout for the frame
15. [Link]().setLayout(new FlowLayout());
16. String[] option1 = { "A","B","C","D","E" };
17. JComboBox box1 = new JComboBox(option1);
18. String[] option2 = {"1","2","3","4","5"};
19. JComboBox box2 = new JComboBox(option2);
20. Panel panel1 = new Panel();
21. [Link](box1);
22. Panel panel2 = new Panel();
23. [Link](box2);
24. JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, panel1, panel
2);
25. // JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
26. // panel1, panel2);
27. [Link]().add(splitPane);
28. }
29. public static void main(String[] args) {
30. // Schedule a job for the event-dispatching thread:
31. // creating and showing this application's GUI.
32. [Link](new Runnable() {
33. public void run() {
34. createAndShow();
35. }
36. });
37. }
38. }
Output:
Next Topic Java JTextPane
Layout managers
BorderLayout (LayoutManagers)
Java LayoutManagers
The LayoutManagers are used to arrange components in a particular manner. The Java
LayoutManagers facilitates us to control the positioning and size of the components in
GUI forms. LayoutManager is an interface that is implemented by all the classes of layout
managers. There are the following classes that represent the layout managers:
1. [Link]
2. [Link]
3. [Link]
4. [Link]
5. [Link]
6. [Link]
7. [Link]
8. [Link]
9. [Link] etc.
Java BorderLayout
The BorderLayout is used to arrange the components in five regions: north, south, east,
west, and center. Each region (area) may contain one component only. It is the default
layout of a frame or window. The BorderLayout provides five constants for each region:
1. import [Link].*;
2. import [Link].*;
3.
4. public class Border
5. {
6. JFrame f;
7. Border()
8. {
9. f = new JFrame();
10.
11. // creating buttons
12. JButton b1 = new JButton("NORTH");; // the button will be labeled as NORTH
13. JButton b2 = new JButton("SOUTH");; // the button will be labeled as SOUTH
14. JButton b3 = new JButton("EAST");; // the button will be labeled as EAST
15. JButton b4 = new JButton("WEST");; // the button will be labeled as WEST
16. JButton b5 = new JButton("CENTER");; // the button will be labeled as CENTER
17.
18. [Link](b1, [Link]); // b1 will be placed in the North Direction
19. [Link](b2, [Link]); // b2 will be placed in the South Direction
20. [Link](b3, [Link]); // b2 will be placed in the East Direction
21. [Link](b4, [Link]); // b2 will be placed in the West Direction
22. [Link](b5, [Link]); // b2 will be placed in the Center
23.
24. [Link](300, 300);
25. [Link](true);
26. }
27. public static void main(String[] args) {
28. new Border();
29. }
30. }
Output:
FileName: [Link]
1. // import statement
2. import [Link].*;
3. import [Link].*;
4. public class BorderLayoutExample
5. {
6. JFrame jframe;
7. // constructor
8. BorderLayoutExample()
9. {
10. // creating a Frame
11. jframe = new JFrame();
12. // create buttons
13. JButton btn1 = new JButton("NORTH");
14. JButton btn2 = new JButton("SOUTH");
15. JButton btn3 = new JButton("EAST");
16. JButton btn4 = new JButton("WEST");
17. JButton btn5 = new JButton("CENTER");
18. // creating an object of the BorderLayout class using
19. // the parameterized constructor where the horizontal gap is 20
20. // and vertical gap is 15. The gap will be evident when buttons are placed
21. // in the frame
22. [Link](new BorderLayout(20, 15));
23. [Link](btn1, [Link]);
24. [Link](btn2, [Link]);
25. [Link](btn3, [Link]);
26. [Link](btn4, [Link]);
27. [Link](btn5, [Link]);
28. [Link](300,300);
29. [Link](true);
30. }
31. // main method
32. public static void main(String argvs[])
33. {
34. new BorderLayoutExample();
35. }
36. }
Output:
1. // import statements
2. import [Link].*;
3. import [Link].*;
4.
5. public class BorderLayoutWithoutRegionExample
6. {
7. JFrame jframe;
8.
9. // constructor
10. BorderLayoutWithoutRegionExample()
11. {
12. jframe = new JFrame();
13.
14. JButton btn1 = new JButton("NORTH");
15. JButton btn2 = new JButton("SOUTH");
16. JButton btn3 = new JButton("EAST");
17. JButton btn4 = new JButton("WEST");
18. JButton btn5 = new JButton("CENTER");
19.
20. // horizontal gap is 7, and the vertical gap is 7
21. // Since region is not specified, the gaps are of no use
22. [Link](new BorderLayout(7, 7));
23.
24. // each button covers the whole area
25. // however, the btn5 is the latest button
26. // that is added to the frame; therefore, btn5
27. // is shown
28. [Link](btn1);
29. [Link](btn2);
30. [Link](btn3);
31. [Link](btn4);
32. [Link](btn5);
33.
34. [Link](300,300);
35. [Link](true);
36. }
37.
38. // main method
39. public static void main(String argvs[])
40. {
41. new BorderLayoutWithoutRegionExample();
42. }
43. }
Output:
Java GridLayout
The Java GridLayout class is used to arrange the components in a rectangular grid. One
component is displayed in each rectangle.
1. GridLayout(): creates a grid layout with one column per component in a row.
2. GridLayout(int rows, int columns): creates a grid layout with the given rows and
columns but no gaps between the components.
3. GridLayout(int rows, int columns, int hgap, int vgap): creates a grid layout with
the given rows and columns along with given horizontal and vertical gaps.
1. // import statements
2. import [Link].*;
3. import [Link].*;
4.
5. public class GridLayoutExample
6. {
7. JFrame frameObj;
8.
9. // constructor
10. GridLayoutExample()
11. {
12. frameObj = new JFrame();
13.
14. // creating 9 buttons
15. JButton btn1 = new JButton("1");
16. JButton btn2 = new JButton("2");
17. JButton btn3 = new JButton("3");
18. JButton btn4 = new JButton("4");
19. JButton btn5 = new JButton("5");
20. JButton btn6 = new JButton("6");
21. JButton btn7 = new JButton("7");
22. JButton btn8 = new JButton("8");
23. JButton btn9 = new JButton("9");
24.
25. // adding buttons to the frame
26. // since, we are using the parameterless constructor, therfore;
27. // the number of columns is equal to the number of buttons we
28. // are adding to the frame. The row count remains one.
29. [Link](btn1); [Link](btn2); [Link](btn3);
30. [Link](btn4); [Link](btn5); [Link](btn6);
31. [Link](btn7); [Link](btn8); [Link](btn9);
32.
33. // setting the grid layout using the parameterless constructor
34. [Link](new GridLayout());
35.
36.
37. [Link](300, 300);
38. [Link](true);
39. }
40.
41. // main method
42. public static void main(String argvs[])
43. {
44. new GridLayoutExample();
45. }
46. }
Output:
1. import [Link].*;
2. import [Link].*;
3. public class MyGridLayout{
4. JFrame f;
5. MyGridLayout(){
6. f=new JFrame();
7. JButton b1=new JButton("1");
8. JButton b2=new JButton("2");
9. JButton b3=new JButton("3");
10. JButton b4=new JButton("4");
11. JButton b5=new JButton("5");
12. JButton b6=new JButton("6");
13. JButton b7=new JButton("7");
14. JButton b8=new JButton("8");
15. JButton b9=new JButton("9");
16. // adding buttons to the frame
17. [Link](b1); [Link](b2); [Link](b3);
18. [Link](b4); [Link](b5); [Link](b6);
19. [Link](b7); [Link](b8); [Link](b9);
20.
21. // setting grid layout of 3 rows and 3 columns
22. [Link](new GridLayout(3,3));
23. [Link](300,300);
24. [Link](true);
25. }
26. public static void main(String[] args) {
27. new MyGridLayout();
28. }
29. }
Output:
FileName: [Link]
1. // import statements
2. import [Link].*;
3. import [Link].*;
4.
5. public class GridLayoutExample1
6. {
7.
8. JFrame frameObj;
9.
10. // constructor
11. GridLayoutExample1()
12. {
13. frameObj = new JFrame();
14.
15. // creating 9 buttons
16. JButton btn1 = new JButton("1");
17. JButton btn2 = new JButton("2");
18. JButton btn3 = new JButton("3");
19. JButton btn4 = new JButton("4");
20. JButton btn5 = new JButton("5");
21. JButton btn6 = new JButton("6");
22. JButton btn7 = new JButton("7");
23. JButton btn8 = new JButton("8");
24. JButton btn9 = new JButton("9");
25.
26. // adding buttons to the frame
27. // since, we are using the parameterless constructor, therefore;
28. // the number of columns is equal to the number of buttons we
29. // are adding to the frame. The row count remains one.
30. [Link](btn1); [Link](btn2); [Link](btn3);
31. [Link](btn4); [Link](btn5); [Link](btn6);
32. [Link](btn7); [Link](btn8); [Link](btn9);
33. // setting the grid layout
34. // a 3 * 3 grid is created with the horizontal gap 20
35. // and vertical gap 25
36. [Link](new GridLayout(3, 3, 20, 25));
37. [Link](300, 300);
38. [Link](true);
39. }
40. // main method
41. public static void main(String argvs[])
42. {
43. new GridLayoutExample();
44. }
45. }
Output:
Java FlowLayout
The Java FlowLayout class is used to arrange the components in a line, one after another
(in a flow). It is the default layout of the applet or panel.
1. FlowLayout(): creates a flow layout with centered alignment and a default 5 unit
horizontal and vertical gap.
2. FlowLayout(int align): creates a flow layout with the given alignment and a
default 5 unit horizontal and vertical gap.
3. FlowLayout(int align, int hgap, int vgap): creates a flow layout with the given
alignment and the given horizontal and vertical gap.
Example of FlowLayout class: Using FlowLayout() constructor
FileName: [Link]
1. // import statements
2. import [Link].*;
3. import [Link].*;
4.
5. public class FlowLayoutExample
6. {
7.
8. JFrame frameObj;
9.
10. // constructor
11. FlowLayoutExample()
12. {
13. // creating a frame object
14. frameObj = new JFrame();
15.
16. // creating the buttons
17. JButton b1 = new JButton("1");
18. JButton b2 = new JButton("2");
19. JButton b3 = new JButton("3");
20. JButton b4 = new JButton("4");
21. JButton b5 = new JButton("5");
22. JButton b6 = new JButton("6");
23. JButton b7 = new JButton("7");
24. JButton b8 = new JButton("8");
25. JButton b9 = new JButton("9");
26. JButton b10 = new JButton("10");
27.
28.
29. // adding the buttons to frame
30. [Link](b1); [Link](b2); [Link](b3); [Link](b4);
31. [Link](b5); [Link](b6); [Link](b7); [Link](b8);
32. [Link](b9); [Link](b10);
33.
34. // parameter less constructor is used
35. // therefore, alignment is center
36. // horizontal as well as the vertical gap is 5 units.
37. [Link](new FlowLayout());
38.
39. [Link](300, 300);
40. [Link](true);
41. }
42.
43. // main method
44. public static void main(String argvs[])
45. {
46. new FlowLayoutExample();
47. }
48. }
Output:
1. import [Link].*;
2. import [Link].*;
3.
4. public class MyFlowLayout{
5. JFrame f;
6. MyFlowLayout(){
7. f=new JFrame();
8.
9. JButton b1=new JButton("1");
10. JButton b2=new JButton("2");
11. JButton b3=new JButton("3");
12. JButton b4=new JButton("4");
13. JButton b5=new JButton("5");
14.
15. // adding buttons to the frame
16. [Link](b1); [Link](b2); [Link](b3); [Link](b4); [Link](b5);
17.
18. // setting flow layout of right alignment
19. [Link](new FlowLayout([Link]));
20.
21. [Link](300,300);
22. [Link](true);
23. }
24. public static void main(String[] args) {
25. new MyFlowLayout();
26. }
27. }
Output:
1. // import statement
2. import [Link].*;
3. import [Link].*;
4.
5. public class FlowLayoutExample1
6. {
7. JFrame frameObj;
8.
9. // constructor
10. FlowLayoutExample1()
11. {
12. // creating a frame object
13. frameObj = new JFrame();
14.
15. // creating the buttons
16. JButton b1 = new JButton("1");
17. JButton b2 = new JButton("2");
18. JButton b3 = new JButton("3");
19. JButton b4 = new JButton("4");
20. JButton b5 = new JButton("5");
21. JButton b6 = new JButton("6");
22. JButton b7 = new JButton("7");
23. JButton b8 = new JButton("8");
24. JButton b9 = new JButton("9");
25. JButton b10 = new JButton("10");
26.
27.
28. // adding the buttons to frame
29. [Link](b1); [Link](b2); [Link](b3); [Link](b4);
30. [Link](b5); [Link](b6); [Link](b7); [Link](b8);
31. [Link](b9); [Link](b10);
32.
33. // parameterized constructor is used
34. // where alignment is left
35. // horizontal gap is 20 units and vertical gap is 25 units.
36. [Link](new FlowLayout([Link], 20, 25));
37.
38.
39. [Link](300, 300);
40. [Link](true);
41. }
42. // main method
43. public static void main(String argvs[])
44. {
45. new FlowLayoutExample1();
46. }
47. }
Output:
Java BoxLayout
The Java BoxLayout class is used to arrange the components either vertically or
horizontally. For this purpose, the BoxLayout class provides four constants. They are as
follows:
1. public static final int X_AXIS: Alignment of the components are horizontal from left to
right.
2. public static final int Y_AXIS: Alignment of the components are vertical from top to
bottom.
3. public static final int LINE_AXIS: Alignment of the components is similar to the way
words are aligned in a line, which is based on the ComponentOrientation property of the
container. If the ComponentOrientation property of the container is horizontal, then the
components are aligned horizontally; otherwise, the components are aligned vertically. For
horizontal orientations, we have two cases: left to right, and right to left. If the value
ComponentOrientation property of the container is from left to right, then the
components are rendered from left to right, and for right to left, the rendering of
components is also from right to left. In the case of vertical orientations, the components
are always rendered from top to bottom.
4. public static final int PAGE_AXIS: Alignment of the components is similar to the way text
lines are put on a page, which is based on the ComponentOrientation property of the
container. If the ComponentOrientation property of the container is horizontal, then
components are aligned vertically; otherwise, the components are aligned horizontally. For
horizontal orientations, we have two cases: left to right, and right to left. If the value
ComponentOrientation property of the container is also from left to right, then the
components are rendered from left to right, and for right to left, the rendering of
components is from right to left. In the case of vertical orientations, the components are
always rendered from top to bottom.
1. BoxLayout(Container c, int axis): creates a box layout that arranges the components
with the given axis.
1. import [Link].*;
2. import [Link].*;
3.
4. public class BoxLayoutExample1 extends Frame {
5. Button buttons[];
6.
7. public BoxLayoutExample1 () {
8. buttons = new Button [5];
9.
10. for (int i = 0;i<5;i++) {
11. buttons[i] = new Button ("Button " + (i + 1));
12. // adding the buttons so that it can be displayed
13. add (buttons[i]);
14. }
15. // the buttons will be placed horizontally
16. setLayout (new BoxLayout (this, BoxLayout.Y_AXIS));
17. setSize(400,400);
18. setVisible(true);
19. }
20. // main method
21. public static void main(String args[]){
22. BoxLayoutExample1 b=new BoxLayoutExample1();
23. }
24. }
download this example
Output:
1. import [Link].*;
2. import [Link].*;
3.
4. public class BoxLayoutExample2 extends Frame {
5. Button buttons[];
6.
7. public BoxLayoutExample2() {
8. buttons = new Button [5];
9.
10. for (int i = 0;i<5;i++) {
11. buttons[i] = new Button ("Button " + (i + 1));
12. // adding the buttons so that it can be displayed
13. add (buttons[i]);
14. }
15. // the buttons in the output will be aligned vertically
16. setLayout (new BoxLayout(this, BoxLayout.X_AXIS));
17. setSize(400,400);
18. setVisible(true);
19. }
20. // main method
21. public static void main(String args[]){
22. BoxLayoutExample2 b=new BoxLayoutExample2();
23. }
24. }
download this example
Output:
FileName: [Link]
1. // import statements
2. import [Link].*;
3. import [Link].*;
4.
5. public class BoxLayoutExample3 extends Frame
6. {
7. Button buttons[];
8.
9. // constructor of the class
10. public BoxLayoutExample3()
11. {
12. buttons = new Button[5];
13. setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); // line 11
14.
15. for (int i = 0; i < 5; i++)
16. {
17. buttons[i] = new Button ("Button " + (i + 1));
18.
19. // adding the buttons so that it can be displayed
20. add (buttons[i]);
21. }
22.
23. // the ComponentOrientation is set to RIGHT_TO_LEFT. Therefore,
24. // the added buttons will be rendered from right to left
25. setLayout (new BoxLayout(this, BoxLayout.LINE_AXIS));
26. setSize(400, 400);
27. setVisible(true);
28. }
29.
30. // main method
31. public static void main(String argvs[])
32. {
33. // creating an object of the class BoxLayoutExample3
34. BoxLayoutExample3 obj = new BoxLayoutExample3();
35. }
36. }
Output:
FileName: [Link]
1. // import statements
2. import [Link].*;
3. import [Link].*;
4.
5. public class BoxLayoutExample4 extends Frame
6. {
7. Button buttons[];
8. // constructor of the class
9. public BoxLayoutExample4()
10. {
11. JFrame f = new JFrame();
12. JPanel pnl = new JPanel();
13. buttons = new Button[5];
14. GridBagConstraints constrntObj = new GridBagConstraints();
15.
16. [Link] = [Link];
17. for (int i = 0; i < 5; i++)
18. {
19. buttons[i] = new Button ("Button " + (i + 1));
20.
21. // adding the buttons so that it can be displayed
22. add(buttons[i]);
23. }
24.
25. // the components will be displayed just like the line is present on a page
26. setLayout (new BoxLayout(this, BoxLayout.PAGE_AXIS));
27. setSize(400, 400);
28. setVisible(true);
29. }
30.
31. // main method
32. public static void main(String argvs[])
33. {
34. // creating an object of the class BoxLayoutExample4
35. BoxLayoutExample4 obj = new BoxLayoutExample4();
36. }
37. }
Output:
The above output shows that the buttons are aligned horizontally. Now, we will display
the buttons vertically using the PAGE_AXIS.
FileName: [Link]
1. // import statementss
2. import [Link].*;
3. import [Link].*;
4.
5. public class BoxLayoutExample5 extends Frame
6. {
7. Button buttons[];
8.
9. // constructor of the class
10. public BoxLayoutExample5()
11. {
12. JFrame f = new JFrame();
13. buttons = new Button[5];
14.
15. // Creating a Box whose alignment is horizontal
16. Box horizontalBox = [Link]();
17.
18. // ContentPane returns a container
19. Container contentPane = [Link]();
20.
21. for (int i = 0; i < 5; i++)
22. {
23. buttons[i] = new Button ("Button " + (i + 1));
24.
25. // adding the buttons to the box so that it can be displayed
26. [Link](buttons[i]);
27. }
28.
29. // adding the box and the borderlayout to the content pane
30. [Link](horizontalBox, [Link]);
31.
32. // now, the rendered components are displayed vertically.
33. // it is because the box is aligned horizontally
34. [Link] (new BoxLayout(contentPane, BoxLayout.PAGE_AXIS));
35.
36. [Link](400, 400);
37. [Link](true);
38. }
39.
40. // main method
41. public static void main(String argvs[])
42. {
43. // creating an object of the class BoxLayoutExample5
44. BoxLayoutExample5 obj = new BoxLayoutExample5();
45. }
46. }
Output:
Java CardLayout
The Java CardLayout class manages the components in such a manner that only one
component is visible at a time. It treats each component as a card that is why it is known
as CardLayout.
Constructors of CardLayout Class
1. CardLayout(): creates a card layout with zero horizontal and vertical gap.
2. CardLayout(int hgap, int vgap): creates a card layout with the given horizontal
and vertical gap.
o public void next(Container parent): is used to flip to the next card of the given
container.
o public void previous(Container parent): is used to flip to the previous card of
the given container.
o public void first(Container parent): is used to flip to the first card of the given
container.
o public void last(Container parent): is used to flip to the last card of the given
container.
o public void show(Container parent, String name): is used to flip to the specified
card with the given name.
FileName: [Link]
1. // import statements
2. import [Link].*;
3. import [Link].*;
4. import [Link].*;
5.
6. public class CardLayoutExample1 extends JFrame implements ActionListener
7. {
8.
9. CardLayout crd;
10.
11. // button variables to hold the references of buttons
12. JButton btn1, btn2, btn3;
13. Container cPane;
14.
15. // constructor of the class
16. CardLayoutExample1()
17. {
18.
19. cPane = getContentPane();
20.
21. //default constructor used
22. // therefore, components will
23. // cover the whole area
24. crd = new CardLayout();
25.
26. [Link](crd);
27.
28. // creating the buttons
29. btn1 = new JButton("Apple");
30. btn2 = new JButton("Boy");
31. btn3 = new JButton("Cat");
32.
33. // adding listeners to it
34. [Link](this);
35. [Link](this);
36. [Link](this);
37.
38. [Link]("a", btn1); // first card is the button btn1
39. [Link]("b", btn2); // first card is the button btn2
40. [Link]("c", btn3); // first card is the button btn3
41.
42. }
43. public void actionPerformed(ActionEvent e)
44. {
45. // Upon clicking the button, the next card of the container is shown
46. // after the last card, again, the first card of the container is shown upon clicking
47. [Link](cPane);
48. }
49.
50. // main method
51. public static void main(String argvs[])
52. {
53. // creating an object of the class CardLayoutExample1
54. CardLayoutExample1 crdl = new CardLayoutExample1();
55.
56. // size is 300 * 300
57. [Link](300, 300);
58. [Link](true);
59. [Link](EXIT_ON_CLOSE);
60. }
61. }
Output:
Again, we reach the first card of the container if the cat button is clicked, and the cycle
continues.
1. import [Link].*;
2. import [Link].*;
3.
4. import [Link].*;
5.
6. public class CardLayoutExample2 extends JFrame implements ActionListener{
7. CardLayout card;
8. JButton b1,b2,b3;
9. Container c;
10. CardLayoutExample2(){
11.
12. c=getContentPane();
13. card=new CardLayout(40,30);
14. //create CardLayout object with 40 hor space and 30 ver space
15. [Link](card);
16.
17. b1=new JButton("Apple");
18. b2=new JButton("Boy");
19. b3=new JButton("Cat");
20. [Link](this);
21. [Link](this);
22. [Link](this);
23.
24. [Link]("a",b1);[Link]("b",b2);[Link]("c",b3);
25.
26. }
27. public void actionPerformed(ActionEvent e) {
28. [Link](c);
29. }
30.
31. public static void main(String[] args) {
32. CardLayoutExample2 cl=new CardLayoutExample2();
33. [Link](400,400);
34. [Link](true);
35. [Link](EXIT_ON_CLOSE);
36. }
37. }
download this example
Output:
FileName: [Link]
1. // Import statements.
2. import [Link].*;
3. import [Link];
4. import [Link];
5. import [Link].*;
6.
7. public class CardLayoutExample3 extends JFrame
8. {
9.
10. // Initializing the value of
11. // currCard to 1 .
12. private int currCard = 1;
13.
14. // Declaring of objects
15. // of the CardLayout class.
16. private CardLayout cObjl;
17.
18. // constructor of the class
19. public CardLayoutExample3()
20. {
21.
22. // Method to set the Title of the JFrame
23. setTitle("Card Layout Methods");
24.
25. // Method to set the visibility of the JFrame
26. setSize(310, 160);
27.
28. // Creating an Object of the "Jpanel" class
29. JPanel cPanel = new JPanel();
30.
31. // Initializing of the object "cObjl"
32. // of the CardLayout class.
33. cObjl = new CardLayout();
34.
35. // setting the layout
36. [Link](cObjl);
37.
38. // Initializing the object
39. // "jPanel1" of the JPanel class.
40. JPanel jPanel1 = new JPanel();
41.
42. // Initializing the object
43. // "jPanel2" of the CardLayout class.
44. JPanel jPanel2 = new JPanel();
45.
46. // Initializing the object
47. // "jPanel3" of the CardLayout class.
48. JPanel jPanel3 = new JPanel();
49.
50. // Initializing the object
51. // "jPanel4" of the CardLayout class.
52. JPanel jPanel4 = new JPanel();
53.
54. // Initializing the object
55. // "jl1" of the JLabel class.
56. JLabel jLabel1 = new JLabel("C1");
57.
58. // Initializing the object
59. // "jLabel2" of the JLabel class.
60. JLabel jLabel2 = new JLabel("C2");
61.
62. // Initializing the object
63. // "jLabel3" of the JLabel class.
64. JLabel jLabel3 = new JLabel("C3");
65.
66. // Initializing the object
67. // "jLabel4" of the JLabel class.
68. JLabel jLabel4 = new JLabel("C4");
69.
70. // Adding JLabel "jLabel1" to the JPanel "jPanel1".
71. [Link](jLabel1);
72.
73. // Adding JLabel "jLabel2" to the JPanel "jPanel2".
74. [Link](jLabel2);
75.
76. // Adding JLabel "jLabel3" to the JPanel "jPanel3".
77. [Link](jLabel3);
78.
79. // Adding JLabel "jLabel4" to the JPanel "jPanel4".
80. [Link](jLabel4);
81.
82. // Add the "jPanel1" on cPanel
83. [Link](jPanel1, "1");
84.
85. // Add the "jPanel2" on cPanel
86. [Link](jPanel2, "2");
87.
88. // Add the "jPanel3" on cPanel
89. [Link](jPanel3, "3");
90.
91. // Add the "jPanel4" on cPanel
92. [Link](jPanel4, "4");
93.
94. // Creating an Object of the "JPanel" class
95. JPanel btnPanel = new JPanel();
96.
97. // Initializing the object
98. // "firstButton" of the JButton class.
99. JButton firstButton = new JButton("First");
100.
101. // Initializing the object
102. // "nextButton" of the JButton class.
103. JButton nextButton = new JButton("->");
104.
105. // Initializing the object
106. // "previousbtn" of JButton class.
107. JButton previousButton = new JButton("<-");
108.
109. // Initializing the object
110. // "lastButton" of the JButton class.
111. JButton lastButton = new JButton("Last");
112.
113. // Adding the JButton "firstbutton" on the JPanel.
114. [Link](firstButton);
115.
116. // Adding the JButton "nextButton" on the JPanel.
117. [Link](nextButton);
118.
119. // Adding the JButton "previousButton" on the JPanel.
120. [Link](previousButton);
121.
122. // Adding the JButton "lastButton" on the JPanel.
123. [Link](lastButton);
124.
125. // adding firstButton in the ActionListener
126. [Link](new ActionListener()
127. {
128. public void actionPerformed(ActionEvent ae)
129. {
130.
131. // using the first cObjl CardLayout
132. [Link](cPanel);
133.
134. // value of currCard is 1
135. currCard = 1;
136. }
137. });
138.
139. // add lastButton in ActionListener
140. [Link](new ActionListener()
141. {
142. public void actionPerformed(ActionEvent ae)
143. {
144.
145. // using the last cObjl CardLayout
146. [Link](cPanel);
147.
148. // value of currCard is 4
149. currCard = 4;
150. }
151. });
152.
153. // add nextButton in ActionListener
154. [Link](new ActionListener()
155. {
156. public void actionPerformed(ActionEvent ae)
157. {
158.
159. if (currCard < 4)
160. {
161.
162. // increase the value of currCard by 1
163. currCard = currCard + 1;
164.
165. // show the value of currCard
166. [Link](cPanel, "" + (currCard));
167. }
168. }
169. });
170.
171. // add previousButton in ActionListener
172. [Link](new ActionListener()
173. {
174. public void actionPerformed(ActionEvent ae)
175. {
176.
177. if (currCard > 1)
178. {
179.
180. // decrease the value
181. // of currCard by 1
182. currCard = currCard - 1;
183.
184. // show the value of currCard
185. [Link](cPanel, "" + (currCard));
186. }
187. }
188. });
189.
190. // using to get the content pane
191. getContentPane().add(cPanel, [Link]);
192.
193. // using to get the content pane
194. getContentPane().add(btnPanel, [Link]);
195. }
196.
197. // main method
198. public static void main(String argvs[])
199. {
200.
201. // Creating an object of the CardLayoutExample3 class.
202. CardLayoutExample3 cll = new CardLayoutExample3();
203.
204. // method to set the default operation of the JFrame.
205. [Link](JFrame.EXIT_ON_CLOSE);
206.
207. // aethod to set the visibility of the JFrame.
208. [Link](true);
209. }
210. }
Output:
Java GridBagLayout
The Java GridBagLayout class is used to align components vertically, horizontally or along
their baseline.
The components may not be of the same size. Each GridBagLayout object maintains a
dynamic, rectangular grid of cells. Each component occupies one or more cells known as
its display area. Each component associates an instance of GridBagConstraints. With the
help of the constraints object, we arrange the component's display area on the grid. The
GridBagLayout manages each component's minimum and preferred sizes in order to
determine the component's size. GridBagLayout components are also arranged in the
rectangular grid but can have many different sizes and can occupy multiple rows or
columns.
Constructor
GridBagLayout(): The parameterless constructor is used to create a grid bag layout
manager.
GridBagLayout Fields
GridBagLayout Methods
Example 1
FileName: [Link]
1. import [Link];
2. import [Link];
3. import [Link];
4.
5. import [Link].*;
6. public class GridBagLayoutExample extends JFrame{
7. public static void main(String[] args) {
8. GridBagLayoutExample a = new GridBagLayoutExample();
9. }
10. public GridBagLayoutExample() {
11. GridBagLayoutgrid = new GridBagLayout();
12. GridBagConstraints gbc = new GridBagConstraints();
13. setLayout(grid);
14. setTitle("GridBag Layout Example");
15. GridBagLayout layout = new GridBagLayout();
16. [Link](layout);
17. [Link] = [Link];
18. [Link] = 0;
19. [Link] = 0;
20. [Link](new Button("Button One"), gbc);
21. [Link] = 1;
22. [Link] = 0;
23. [Link](new Button("Button two"), gbc);
24. [Link] = [Link];
25. [Link] = 20;
26. [Link] = 0;
27. [Link] = 1;
28. [Link](new Button("Button Three"), gbc);
29. [Link] = 1;
30. [Link] = 1;
31. [Link](new Button("Button Four"), gbc);
32. [Link] = 0;
33. [Link] = 2;
34. [Link] = [Link];
35. [Link] = 2;
36. [Link](new Button("Button Five"), gbc);
37. setSize(300, 300);
38. setPreferredSize(getSize());
39. setVisible(true);
40. setDefaultCloseOperation(EXIT_ON_CLOSE);
41.
42. }
43.
44. }
Output:
Example 2
FileName: [Link]
Output:
GroupLayout
GroupLayout groups its components and places them in a Container hierarchically. The
grouping is done by instances of the Group class.
Group is an abstract class, and two concrete classes which implement this Group class are
SequentialGroup and ParallelGroup.
SequentialGroup positions its child sequentially one after another whereas ParallelGroup
aligns its child on top of each other.
GroupLayout treats each axis independently. That is, there is a group representing the
horizontal axis, and a group representing the vertical axis. Each component must exist in
both a horizontal and vertical group, otherwise an IllegalStateException is thrown during
layout or when the minimum, preferred, or maximum size is requested.
Nested Classes
class [Link] Group provides the basis for the two types of
operations supported by GroupLayout: laying out
components one after another
(SequentialGroup) or aligned (ParallelGroup).
Fields
static int DEFAULT_SIZE It indicates the size from the component or gap should be
used for a particular range value.
static int PREFERRED_SIZE It indicates the preferred size from the component or gap
should be used for a particular range value.
Constructors
Useful Methods
Example 1
FileName: [Link]
1. // import statements
2. import [Link].*;
3. import [Link].*;
4. public class GroupExample {
5. public static void main(String[] args) {
6. JFrame frame = new JFrame("GroupLayoutExample");
7. [Link](JFrame.EXIT_ON_CLOSE);
8. Container contentPanel = [Link]();
9. GroupLayout groupLayout = new GroupLayout(contentPanel);
10.
11. [Link](groupLayout);
12.
13. JLabel clickMe = new JLabel("Click Here");
14. JButton button = new JButton("This Button");
15.
16. [Link](
17. [Link]()
18. .addComponent(clickMe)
19. .addGap(10, 20, 100)
20. .addComponent(button));
21. [Link](
22. [Link]([Link])
23. .addComponent(clickMe)
24. .addComponent(button));
25. [Link]();
26. [Link](true);
27. }
28. }
Output:
Example 2
FileName: [Link]
1. import [Link];
2. import [Link];
3. import [Link];
4. import [Link];
5. import static [Link].*;
6. public class GroupExample2 {
7. public static void main(String[] args) {
8. JFrame frame = new JFrame("GroupLayoutExample");
9. [Link](JFrame.EXIT_ON_CLOSE);
10. Container myPanel = [Link]();
11.
12. GroupLayout groupLayout = new GroupLayout(myPanel);
13. [Link](true);
14. [Link](true);
15. [Link](groupLayout);
16.
17. JButton b1 = new JButton("Button One");
18. JButton b2 = new JButton("Button Two");
19. JButton b3 = new JButton("Button Three");
20.
21. [Link]([Link]()
22. .addGroup([Link](LEADING).addComponent(b1).ad
dComponent(b3))
23. .addGroup([Link](TRAILING).addComponent(b2)));
24.
25. [Link]([Link]()
26. .addGroup([Link](BASELINE).addComponent(b1).ad
dComponent(b2))
27. .addGroup([Link](BASELINE).addComponent(b3)));
28.
29. [Link]();
30. [Link](true);
31. }
32. }
Output:
Next Topic Java SpringLayout
Java SpringLayout
A SpringLayout arranges the children of its associated container according to a set of
constraints. Constraints are nothing but horizontal and vertical distance between two-
component edges. Every constraint is represented by a [Link] object.
Each child of a SpringLayout container, as well as the container itself, has exactly one set
of constraints associated with them.
Each edge position is dependent on the position of the other edge. If a constraint is added
to create a new edge, than the previous binding is discarded. SpringLayout doesn't
automatically set the location of the components it manages.
Constructor
SpringLayout(): The default constructor of the class is used to instantiate the
SpringLayout class.
Nested Classes
SpringLayout Fields
SpringLayout Methods
Example: 1
FileName: [Link]
1. import [Link];
2. import [Link];
3. import [Link];
4. import [Link];
5. import [Link];
6. public class MySpringDemo {
7. private static void createAndShowGUI() {
8. JFrame frame = new JFrame("MySpringDemp");
9. [Link](JFrame.EXIT_ON_CLOSE);
10.
11. Container contentPane = [Link]();
12. SpringLayout layout = new SpringLayout();
13. [Link](layout);
14.
15. JLabel label = new JLabel("Label: ");
16. JTextField textField = new JTextField("My Text Field", 15);
17. [Link](label);
18. [Link](textField);
19.
20. [Link]([Link], label,6,[Link], contentPan
e);
21. [Link]([Link], label,6,[Link], content
Pane);
22. [Link]([Link], textField,6,[Link], label);
23. [Link]([Link], textField,6,[Link], cont
entPane);
24. [Link]([Link], contentPane,6,[Link], textFi
eld);
25. [Link]([Link], contentPane,6,[Link], t
extField);
26.
27. [Link]();
28. [Link](true);
29. }
30. public static void main(String[] args) {
31. [Link](new Runnable() {
32. public void run() {
33. createAndShowGUI();
34. }
35. });
36. }
37. }
Output:
Example: 2
The following program does the arrangement of the components in a JFrame. We have
created one class named "MySpringDemo1 class" and have also created 4 JButton
components called "btn1″, "btn2", "btn3", "btn4", "btn5" and then adding them to the
JFrame using the method add(). Using the method setvisible(), we have set the visibility
of the frame. The setLayout() method sets the layout.
FileName: [Link]
Output:
ScrollPaneLayout
The layout manager is used by JScrollPane. JScrollPaneLayout is responsible for nine
components: a viewport, two scrollbars, a row header, a column header, and four "corner"
components.
Constructor
ScrollPaneLayout(): The parameterless constructor is used to create a new
ScrollPanelLayout.
Nested Class
FieldScrollPanelLayout Field
protected Component upperLeft This component displays in the upper left corner.
protected Component upperRight This component displays in the upper right corner.
protected int vsbPolicy It is the display policy for the vertical scrollbar.
ScrollPanelLayout Methods
Example: 1
FileName: [Link]
1. import [Link];
2. import [Link];
3. import [Link];
4. import [Link];
5. public class ScrollPaneDemo extends JFrame
6. {
7. public ScrollPaneDemo() {
8. super("ScrollPane Demo");
9. ImageIcon img = new ImageIcon("[Link]");
10.
11. JScrollPane png = new JScrollPane(new JLabel(img));
12.
13. getContentPane().add(png);
14. setSize(300,250);
15. setVisible(true);
16. }
17.
18. public static void main(String[] args) {
19. new ScrollPaneDemo();
20. }
21. }
Output:
Example: 2
The below Java program shows the usage of the ScrollPaneLayout by arranging the
several components of JLabel in a JFrame,
Also, the JRadioButton and ButtonGroup are made. We set the visibility and size of the
frame by using the setVisible() and setSize() methods, respectively.
FileName: [Link]
Output: