Home Java Example Java Swing Graphics2D Icon Changes at runtime
Questions:Ask|Latest


 
 

Share on Google+Share on Google+

Icon Changes at runtime

Advertisement
To create an icon, we have defined Icon class which provides three methods getIconWidth(), getIconHeight() and paintIcon().

Icon Changes at runtime

     

This section illustrates you how to create an icon that changes from at runtime.

To create an icon, we have defined Icon class which provides three methods getIconWidth(),  getIconHeight() and paintIcon(). We have defined two sliders using JSlider class to show the changes related to height and width of the icon.

The method g.fillOval(p, q, getIconWidth(), getIconHeight()) draws the oval shape. The method stateChanged() is invoked when the state is changed by the listener. To layout a container to arrange and resize its components and define five regions: north, south, east, west, and center, the class BorderLayout is used. The slider showing width is directed to the north by BorderLayout.NORTH and the slider showing height is directed to the south by BorderLayout.SOUTH. The icon is directed to the center BorderLayout.CENTER.

Here is the code of IconChangesForm.java

import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;

public class IconChangesForm {
  public static void main(String[] args) {
 final JSlider w = new JSlider(JSlider.HORIZONTAL, 115070);
 final JSlider h = new JSlider(JSlider.HORIZONTAL, 115070);
  class FormIcon implements Icon {
 public int getIconWidth() {
 return w.getValue();
  }
 public int getIconHeight() {
 return h.getValue();
  }
  public void paintIcon(Component component, Graphics g, int p, int q)
   {
  g.fillOval(p, q, getIconWidth(), getIconHeight());
 }
  }
  Icon icon = new FormIcon();
  final JLabel label = new JLabel(icon);
  class Form implements ChangeListener {
  public void stateChanged(ChangeEvent event) {
  label.repaint();
  }
  }
  Form form = new Form();
  w.addChangeListener(form);
  h.addChangeListener(form);
  JFrame frame = new JFrame("Form Icon");
  Container container = frame.getContentPane();
  container.setLayout(new BorderLayout());
  container.add(w, BorderLayout.NORTH);
  container.add(h, BorderLayout.SOUTH);
  container.add(label, BorderLayout.CENTER);
  frame.setSize(200200);
  frame.show();
  }
  }

Output will be displayed as:

Download Source Code

Advertisements

Liked it!  Share this Tutorial


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: October 14, 2008

Ask Questions?    Discuss: Icon Changes at runtime  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments
DMCA.com