Showing posts with label component. Show all posts
Showing posts with label component. Show all posts

Remove component from JFrame during runtime

Source code below will show you, how to remove component from a JFrame during program runtime. Component that will be use in source code below is a group of JButton.

**************************************************************************
COMPLETE SOURCE CODE FOR : RemoveComponentOnJFrameAtRuntime.java
**************************************************************************


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JOptionPane;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Component;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class RemoveComponentOnJFrameAtRuntime extends JFrame implements ActionListener
{
JPanel panel;

public RemoveComponentOnJFrameAtRuntime()
{
super("Remove component on JFrame during runtime");
setLayout(new BorderLayout());

panel=new JPanel();
panel.setLayout(new FlowLayout());

JButton button1=new JButton("BUTTON 1");
JButton button2=new JButton("BUTTON 2");
JButton button3=new JButton("BUTTON 3");
JButton button4=new JButton("BUTTON 4");
JButton button5=new JButton("BUTTON 5");

panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
panel.add(button5);

add(panel,BorderLayout.CENTER);

JButton removeButton=new JButton("Click here to remove button");
removeButton.addActionListener(this);

add(removeButton,BorderLayout.SOUTH);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,500);
setVisible(true);
}

public void actionPerformed(ActionEvent event)
{
Component[]storeAllButtonInPanel=panel.getComponents();

if(storeAllButtonInPanel.length!=0)
{
panel.remove(storeAllButtonInPanel.length-1);
panel.revalidate();
validate();
repaint();
}

else
{
JOptionPane.showMessageDialog(this,"No button to remove");
}
}

public static void main(String[]args)
{
RemoveComponentOnJFrameAtRuntime rcojfat=new RemoveComponentOnJFrameAtRuntime();
}
}


**************************************************************************
JUST COMPILE AND EXECUTE IT
**************************************************************************

Add component on JFrame during runtime

Source code below will show you how to add a component into a JFrame during program runtime. Component that will be use in this program, is JButton.

************************************************************************
COMPLETE SOURCE CODE FOR : AddComponentOnJFrameAtRuntime.java
************************************************************************


import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.awt.FlowLayout;
import java.awt.BorderLayout;

public class AddComponentOnJFrameAtRuntime extends JFrame implements ActionListener
{
JPanel panel;

public AddComponentOnJFrameAtRuntime()
{
super("Add component on JFrame at runtime");
setLayout(new BorderLayout());
panel=new JPanel();
panel.setLayout(new FlowLayout());
add(panel,BorderLayout.CENTER);
JButton button=new JButton("CLICK HERE");
add(button,BorderLayout.SOUTH);
button.addActionListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,500);
setVisible(true);
}

public void actionPerformed(ActionEvent evt)
{
panel.add(new JButton("Button"));
panel.revalidate();
validate();
}

public static void main(String[]args)
{
AddComponentOnJFrameAtRuntime acojfar=new AddComponentOnJFrameAtRuntime();
}
}


************************************************************************
JUST COMPILE AND EXECUTE IT
************************************************************************

Put component into JWindow

Source code below will show you how to add a component into JWindow. In this case we will use button as component that we want to add into JWindow.

*******************************************************************
COMPLETE SOURCE CODE FOR : PutComponentIntoJWindow.java
*******************************************************************


import javax.swing.JWindow;
import javax.swing.JButton;

import java.awt.BorderLayout;

import java.awt.Container;

public class PutComponentIntoJWindow
{
public static void main(String[]args)
{
//Create a button.
//Button will be a component that we will add into JWindow
JButton button=new JButton("MY BUTTON");

//Create a JWindow
JWindow window=new JWindow();

//When you want to add component into JWindow you must get it Container first
//After that you can add component into JWindow using it.
Container contain=window.getContentPane();

//Set container layout to BorderLayout
contain.setLayout(new BorderLayout());

//Add button into JWindow
contain.add(button,BorderLayout.CENTER);

//Set JWindow size
window.setSize(400,400);

//Make JWindow visible
window.setVisible(true);
}
}


*******************************************************************
JUST COMPILE AND EXECUTE IT
*******************************************************************

Note : Thanks for someone that show me some light. It is wrong when we want to add component into JWindow like example(For example : window is variable for JWindow, it wrong when we want to add component into JWindow...we do like this window.add(button)).We must get it's container first, and after that we will add component into JWindow using container that we get.You can see source code above after i repaired it.

Change cursor for a component


*********************************************************************
COMPLETE SOURCE CODE FOR : HowToChangeComponentCursor.java
*********************************************************************


import java.awt.Frame;
import java.awt.Component;
import java.awt.Cursor;

import java.awt.event.WindowListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class HowToChangeComponentCursor
{
public static void main(String[]args)
{
WindowListener wl=new WindowAdapter()
{
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
};

Frame a=new Frame("HOVER YOUR CURSOR IN THIS FRAME");
a.addWindowListener(wl);

//METHOD setCursor WILL SET NEW CURSOR FOR COMPONENT
a.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));

a.setSize(800,600);
a.setVisible(true);
}
}


*********************************************************************
JUST COMPILE AND EXECUTE IT
*********************************************************************

Determine when a component is added or removed from a container


*****************************************************************
COMPLETE SOURCE CODE FOR : DetermineWhenAComponentIsAddOrRemove.java
*****************************************************************


import java.awt.Frame;//import Frame class into program
import java.awt.Panel;//import Panel class into program
import java.awt.Button;//import Button class into program
import java.awt.Label;//import Label class into program
import java.awt.Component;//import Component class into program

import java.awt.event.ContainerListener;//import ContainerListener class into program
import java.awt.event.ContainerAdapter;//import ContainerAdapter class into program
import java.awt.event.ContainerEvent;//import ContainerEvent class into program

import java.awt.event.WindowListener;//import WindowListener class into program
import java.awt.event.WindowAdapter;//import WindowAdapter class into program
import java.awt.event.WindowEvent;//import WindowEvent class into program

import java.awt.event.ActionListener;//import ActionListener class into program
import java.awt.event.ActionEvent;//import ActionEvent class into program

import java.awt.BorderLayout;//import BorderLayout class into program
import java.awt.FlowLayout;//import FlowLayout class into program

import java.awt.Color;//import Color class into program

import javax.swing.JOptionPane;//import JOptionPane class into program

public class DetermineWhenAComponentIsAddOrRemove implements ActionListener
{
//Initiate Frame(a) object
Frame a=new Frame("DETERMINE WHEN A COMPONENT IS ADD OR REMOVE");
//Initiate Button(b) object
Button b=new Button("CLICK HERE TO ADD NEW COMPONENT(A LABEL)");
//Initiate Button(d) object
Button d=new Button("CLICK HERE TO REMOVE NEW INSERTED COMPONENT");
//Initiate Panel(c) object
Panel c=new Panel();

public DetermineWhenAComponentIsAddOrRemove()
{
//Set layout for Frame(a)
a.setLayout(new BorderLayout());

//Listen when someone click at Frame(a) close button
WindowListener wl=new WindowAdapter()
{
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
};

//Listen when a component is added or removed from Panel(c)
ContainerListener cl=new ContainerAdapter()
{
public void componentAdded(ContainerEvent evt)
{
JOptionPane.showMessageDialog(null,"A COMPONENT ADDED");
}

public void componentRemoved(ContainerEvent evt)
{
JOptionPane.showMessageDialog(null,"A COMPONENT REMOVED");
}
};

//Label at the top of Frame(a)
Label e=new Label("PANEL WITH BLUE COLOR AT THE CENTER IS A CONTAINER");
//Make Label's allignment to center
e.setAlignment(Label.CENTER);
//Add Label(e) to Frame(a)
a.add(e,BorderLayout.NORTH);

//Add ContainerListener to Panel(c)
c.addContainerListener(cl);
//Set background color(blue) to Panel(c)
c.setBackground(Color.BLUE);
//Add Panel(c) to Frame(a)
a.add(c,BorderLayout.CENTER);

//Panel to place Button(b and d)
Panel f=new Panel();
//Set layout for panel(f)
f.setLayout(new FlowLayout());
//Add ActionListener to Button(b and d)
b.addActionListener(this);
d.addActionListener(this);
//Add button(b and d) to Panel(f)
f.add(b);
f.add(d);
//Add Panel(f) to Frame(a)
a.add(f,BorderLayout.SOUTH);

//Add WindowListener to Frame(a)
a.addWindowListener(wl);
//Set Frame(a) size to 800pixel width and 600pixel height
a.setSize(800,600);
//Set Frame(a) to visible
a.setVisible(true);
}

//Action that must do by Button(b and d)
public void actionPerformed(ActionEvent evt)
{
//Action for Button b
if(evt.getSource()==b)
{
c.add(new Label("NEW LABEL"));
c.validate();
a.validate();
}

//Action for Button d
if(evt.getSource()==d)
{
Component[]storeAllComponent=c.getComponents();
if(storeAllComponent.length!=0)
{
int numbersOfComponent=storeAllComponent.length;
int indexForRemoveComponent=numbersOfComponent-1;
c.remove(indexForRemoveComponent);
c.validate();
a.validate();
}
}
}

//MAIN METHOD
public static void main(String[]args)
{
DetermineWhenAComponentIsAddOrRemove myObject=new DetermineWhenAComponentIsAddOrRemove();
}
}


*****************************************************************
JUST COMPILE AND EXECUTE IT
*****************************************************************

Get child components from a container


****************************************************************
COMPLETE SOURCE CODE FOR : GetChildComponentOfaContainer.java
****************************************************************


import java.awt.Frame;//IMPORT FRAME CLASS INTO THIS PROGRAM
import java.awt.Label;//IMPORT LABEL CLASS INTO THIS PROGRAM
import java.awt.TextField;//IMPORT TEXTFIELD CLASS INTO THIS PROGRAM
import java.awt.Button;//IMPORT BUTTON CLASS INTO THIS PROGRAM
import java.awt.Panel;//IMPORT PANEL CLASS INTO THIS PROGRAM
import java.awt.Component;//IMPORT COMPONENT CLASS INTO THIS PROGRAM

import java.awt.event.WindowListener;//IMPORT WINDOWLISTENER CLASS INTO THIS PROGRAM
import java.awt.event.WindowAdapter;//IMPORT WINDOWADAPTER CLASS INTO THIS PROGRAM
import java.awt.event.WindowEvent;//IMPORT WINDOWEVENT CLASS INTO THIS PROGRAM
import java.awt.event.ActionListener;//IMPORT ACTIONLISTENER CLASS INTO THIS PROGRAM
import java.awt.event.ActionEvent;//IMPORT ACTIONEVENT CLASS INTO THIS PROGRAM

import java.awt.FlowLayout;//IMPORT FLOWLAYOUT CLASS INTO THIS PROGRAM
import java.awt.BorderLayout;//IMPORT BORDERLAYOUT CLASS INTO THIS PROGRAM

import java.awt.Color;//IMPORT COLOR CLASS INTO THIS PROGRAM

import javax.swing.JOptionPane;//IMPORT JOPTIONPANE CLASS INTO THIS PROGRAM

public class GetChildComponentOfaContainer implements ActionListener
{
Frame a=new Frame("GET CHILD COMPONENT IN CONTAINER");
Panel b=new Panel();
Button d=new Button("ADD NEW COMPONENT INTO MONSTER (A LABEL)");
Button c=new Button("CLICK HERE TO SEE NUMBERS OF COMPONENTS IN MONSTER");

public GetChildComponentOfaContainer()
{
//SET LAYOUT FOR FRAME a
a.setLayout(new BorderLayout());

//LISTEN TO WINDOW CLOSING EVENT FOR a
//WHEN SOMEONE CLICK CLOSE BUTTON, THIS APPLICATION WILL TERMINATE.
WindowListener wl=new WindowAdapter()
{
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
};

//PANEL b, TO PLACE COMPONENT
b.setBackground(Color.YELLOW);
b.add(new Label("COMPONENT 1 : A LABEL"));
b.add(new TextField("COMPONENT 2 : A TEXTFIELD"));
b.add(new Button("COMPONENT 3 : A BUTTON"));
a.add(b,BorderLayout.CENTER);

//ADD ACTIONLISTENER FOR BUTTON TO MAKE IT FUNCTION WHEN SOMEONE CLICK.
d.addActionListener(this);
c.addActionListener(this);

//PLACE BOTH THE BUTTONS INTO A CONTAINER AND AFTER THAT PLACE THE CONTAINER INTO a
Panel e=new Panel();
e.add(c);
e.add(d);
a.add(e,BorderLayout.SOUTH);

//LABEL AT THE TOP OF a
Label f=new Label("YELLOW AREA IS A PANEL WITH NAME MONSTER");
f.setAlignment(Label.CENTER);
a.add(f,BorderLayout.NORTH);

a.addWindowListener(wl);
a.setSize(800,600);
a.setVisible(true);
}

//ALL BUTTON ACTION IS HERE
public void actionPerformed(ActionEvent evt)
{
//ACTION FOR BUTTON "ADD NEW COMPONENT INTO MONSTER (A LABEL)"
if(evt.getSource()==d)
{
b.add(new Label("NEW"));
//The validate method is used to cause a container to lay out its subcomponents again.
//So you can see the latest label("NEW") that you add.
b.validate();
a.validate();
}

//ACTION FOR BUTTON "CLICK HERE TO SEE NUMBERS OF COMPONENTS IN MONSTER"
if(evt.getSource()==c)
{
Component[]arrayToStoreAllComponent=b.getComponents();//STORE ALL COMPONENT IN b IN AN ARRAY
int numbersOfComponent=arrayToStoreAllComponent.length;//GET ARRAY LENGTH BECAUSE IT SAME TO NUMBERS OF COMPONENT
JOptionPane.showMessageDialog(null,"NUMBERS OF CURRENT COMPONENT IN MONSTER IS : "+numbersOfComponent);
}
}

//MAIN METHOD
public static void main(String[]args)
{
GetChildComponentOfaContainer myObject=new GetChildComponentOfaContainer();
}
}


****************************************************************
JUST COMPILE AND EXECUTE IT
****************************************************************

How to know when a component resized


We use button as component in this example.

****************************************************************
COMPLETE SOURCE CODE FOR : HowToKnowWhenComponentResize.java
****************************************************************


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

import java.awt.event.ComponentListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

import java.awt.Component;

public class HowToKnowWhenComponentResize
{
JFrame b=new JFrame("TRY RESIZE ME");

JButton d=new JButton("MONSTER");

public HowToKnowWhenComponentResize()
{
ComponentListener cl=new ComponentAdapter()
{
public void componentResized(ComponentEvent evt)
{
Component temp=(Component)evt.getSource();
int currentWidth=temp.getSize().width;
int currentHeight=temp.getSize().height;
JOptionPane.showMessageDialog(null,"SIZE OF COMPONENT IS CHANGE\nMONSTER WIDTH NOW : "+currentWidth+"\nMONSTER HEIGHT NOW : "+currentHeight,"MONSTER'S SIZE",JOptionPane.INFORMATION_MESSAGE);
}
};

d.addComponentListener(cl);
b.add(d);

b.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
b.setSize(400,100);
b.setVisible(true);
}

public static void main(String[]args)
{
HowToKnowWhenComponentResize myObject=new HowToKnowWhenComponentResize();
}
}


****************************************************************
JUST COMPILE AND EXECUTE IT
****************************************************************

How to know when a component has been made invisible or visible ???


In this example, we use button as component.

*************************************************************************
COMPLETE SOURCE CODE FOR : HowToKnowWhenComponentVisible.java
*************************************************************************


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

import java.awt.event.ComponentListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import java.awt.FlowLayout;

public class HowToKnowWhenComponentVisible
{
JFrame a=new JFrame("CLICK HERE");
JFrame b=new JFrame("FRAME TO STORE JBUTTON NAME'S MONSTER");

JButton c=new JButton("VISIBLE");
JButton e=new JButton("INVISIBLE");
JButton d=new JButton("MONSTER");

public HowToKnowWhenComponentVisible()
{
ComponentListener cl=new ComponentAdapter()
{
public void componentHidden(ComponentEvent evt)
{
JOptionPane.showMessageDialog(null,"MONSTER IS INVISIBLE");
}

public void componentShown(ComponentEvent evt)
{
JOptionPane.showMessageDialog(null,"MONSTER IS VISIBLE");
}
};

d.addComponentListener(cl);
b.add(d);

ActionListener al=new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource()==e)
{
d.show(false);
b.repaint();
}

if(evt.getSource()==c)
{
d.show(true);
b.repaint();
}
}
};

c.addActionListener(al);
e.addActionListener(al);
a.setLayout(new FlowLayout());
a.add(c);
a.add(e);

a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
a.setSize(400,100);
a.setVisible(true);

b.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
b.setSize(400,100);
b.setLocation(400,400);
b.setVisible(true);
}

public static void main(String[]args)
{
HowToKnowWhenComponentVisible myObject=new HowToKnowWhenComponentVisible();
}
}


*************************************************************************
JUST COMPILE AND EXECUTE IT
*************************************************************************

RELAXING NATURE VIDEO