Creating an ImageRegionSelector Component
Estimated Time Required: 10 mins
This sample shows how to create an ImageRegionSelector component and use it in an applet.
The source is in the mapexample.java file in the ImageRegionSelector Bean \samples\mapexample directory.
If your default browser supports Java 1.1, you can see the applet running below. Please note it may take a few seconds to load.
As ImageRegionSelector 1.0 uses Swing you will need to have swing.jar from Swing 1.0.3 in your classpath. Also, if you are using Netscape, you need version 4.06, or higher.
You can also run the sample in the Appletviewer or in VisualAge for Java.
To run the applet using Appletviewer:
To run the applet using VisualAge for Java:
To use the sample:
The lines of code relevant to the use of the ImageRegionSelector are described below.
import com.ibm.eou.swingimageregionselector.*;
import java.awt.event.*;
public class Mapexample extends com.sun.java.swing.JApplet implements ItemListener
private String[] regionNames = {"Lincolnshire", "Lincoln", ....., "Colchester"};
private String[] tooltips = {"Click here for the county of Lincolnshire", ....., "Click here for the town of Colchester"};
private ImageRegionSelector angliaSelector;
private JLabel selectionLabel;
angliaSelector = new ImageRegionSelector();
angliaSelector.setLocation(selectorX, selectorY);
angliaSelector.setDisplayImage("/com/ibm/eou/swingimageregionselector/anglia.gif");
angliaSelector.setColorMapImage("/com/ibm/eou/swingimageregionselector/anglia_map.gif");
angliaSelector.setCutawayImage("/com/ibm/eou/swingimageregionselector/anglia_cutaway.gif");
angliaSelector.setSelectionEmphasisStyle(ImageRegionSelector.CUTAWAY);
angliaSelector.setRolloverEmphasisStyle(ImageRegionSelector.LIGHTEN);
angliaSelector.setRegionNames(regionNames);
angliaSelector.setTooltips(tooltips);
getContentPane().add(angliaSelector);
angliaSelector.addItemListener(this);
selectionLabel = new JLabel("No region selected");
selectionLabel.setBounds(selectorX, selectorY + angliaSelector.getHeight(), 350, 20);
getContentPane().add(selectionLabel);
public void itemStateChanged(ItemEvent e)
{
if(e.getStateChange() == ItemEvent.SELECTED)
{
selectionLabel.setText("Region selected: "+angliaSelector.getSelectedItem());
}
else
{
selectionLabel.setText("No region selected");
}
}