Learn to create multiple frames in java

0
2245
featured image

This tutorial provides brief explanation about creating multiple frames in java where we will be creating two classes i.e. OldWindow class and NewWindow class. OldWindow class will deal with the actual logic of frame creation and NewWindow class consists the design structure of JFrame.

    1. Open Eclipse, Go to File-> New-> Java Project, you will get below view

img 1

    1. A dialog box will pop up which will ask you to enter the project details.

img 2

img 3

    1. Select your project, from the package explorer as shown below :

img 4

    1. Follow the below steps to create new class :

 

      1. Click on Project, right click on src -> New -> Class as shown below :

img 5

      1. A dialog box will appear where you will have to set your class name and then select Finish button.

img 6

      1. Now create two classes one is OldWindow.java and second one is NewWindow.java .

img 7

Example :

OldWindow.java

In this OldWindow.java write the actual logic code, in this class write the code which creates JFrame, add JButton for open New Frame.

//import statement
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

//create class and extend with JFrame
public class OldWindow extends JFrame 
{
	//declare variable
	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	//main method
	public static void main(String[] args)
	{
	  /* It posts an event (Runnable)at the end of Swings event list and is
		processed after all other GUI events are processed.*/
		EventQueue.invokeLater(new Runnable()
		{
			public void run()
			{
				//try - catch block
				try 
				{
					//Create object of OldWindow
					OldWindow frame = new OldWindow();
					//set frame visible true
					frame.setVisible(true);					
				} 
				catch (Exception e)
				{
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public OldWindow()//constructor 
	{
		//set frame title
		setTitle("Old Frame");
		//set default close operation
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		//set bounds of the frame
		setBounds(100, 100, 450, 300);
		//create object of JPanel
		contentPane = new JPanel();
		//set border
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		//set ContentPane
		setContentPane(contentPane);
		//set null
		contentPane.setLayout(null);
		
		//create object of JButton and set label on it
		JButton btnNewFrame = new JButton("New");
		//add actionListener
		btnNewFrame.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0)
			{
			//call the object of NewWindow and set visible true
				NewWindow frame = new NewWindow();
				frame.setVisible(true);
				//set default close operation
			setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			}
		});
		//set font of the Button
		btnNewFrame.setFont(new Font("Microsoft YaHei UI", Font.BOLD, 12));
		//set bounds of the Button
		btnNewFrame.setBounds(180, 195, 78, 25);
		//add Button into contentPane
		contentPane.add(btnNewFrame);
		
		//set Label in the frame
		JLabel lblThisIsOld = new JLabel("This is Old Frame");
		//set foreground color to the label
		lblThisIsOld.setForeground(Color.BLUE);
		//set font of that label
lblThisIsOld.setFont(new Font("Times New Roman", Font.BOLD | Font.ITALIC, 24));
		//set bound of the label
		lblThisIsOld.setBounds(127, 82, 239, 39);
		//add label to the contentPane
		contentPane.add(lblThisIsOld);
	}
}

Example :

NewWindow.java

In this class write the code which creates JFrame, add JLabel into the New Frame.

//import statement
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

//create class and extend with JFrame
public class NewWindow extends JFrame 
{
	//declare variable
	private JPanel contentPane;
	/**
	 * Launch the application.
	 */
	//main method
	public static void main(String[] args) 
	{
	/* It posts an event (Runnable)at the end of Swings event list and is
		processed after all other GUI events are processed.*/
		EventQueue.invokeLater(new Runnable()
		{
			public void run()
			{
				//try - catch block
				try 
				{
					//Create object of NewWindow
					NewWindow frame = new NewWindow();
					//set frame visible true
					frame.setVisible(true);			
				}
				catch (Exception e) 
				{
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public NewWindow() //constructor
	{
		//set frame title
		setTitle("New Frame");
		//set default close operation
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		//set bounds of the frame
		setBounds(100, 100, 450, 300);
		
		//create object of JPanel
		contentPane = new JPanel();
		//set border
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		//set ContentPane
		setContentPane(contentPane);
		//set null
		contentPane.setLayout(null);
		
		//label in the frame
		JLabel lblWelcome = new JLabel("Welcome this is New Frame");
		//set fore ground color to the label
		lblWelcome.setForeground(Color.RED);
		//set font to the label
lblWelcome.setFont(new Font("Times New Roman", Font.BOLD | Font.ITALIC, 24));
		//set bounds of the label
		lblWelcome.setBounds(75, 100, 294, 32);
		//add label to the contentPane 
		contentPane.add(lblWelcome);
	}
}

Output :

Output 1

You will get below output :

Output 2

Simillarly, you can create multiple frames and navigate from one frame to another.

Thus, in this tutorial we successfully learnt how to create multiple frames in java.

LEAVE A REPLY

Please enter your comment!
Please enter your name here