// Purpose. Positioning images and text on a JButton import java.util.Hashtable; import java.awt.GridLayout; import java.awt.event.*; // WindowAdapter, WindowEvent, ItemListener, ItemEvent import javax.swing.*; public class ImageIconDemo { private static JButton btn = new JButton( "Button Text", new ImageIcon("cancel.gif") ); private static Hashtable ht = new Hashtable(); private static int getInt(Object s) {return ((Integer)ht.get(s)).intValue();} public static void main( String[] args ) { String[] horPosit = { "LEFT", "CENTER", "RIGHT" }; String[] verPosit = { "TOP", "CENTER", "BOTTOM" }; JFrame f = new JFrame( "Image Icon demo" ); f.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit( 0 ); } } ); f.getContentPane().setLayout( new GridLayout(5,1) ); f.getContentPane().add( btn ); ht.put( "LEFT", new Integer(SwingConstants.LEFT) ); ht.put( "RIGHT", new Integer(SwingConstants.RIGHT) ); ht.put( "CENTER", new Integer(SwingConstants.CENTER) ); ht.put( "TOP", new Integer(SwingConstants.TOP) ); ht.put( "BOTTOM", new Integer(SwingConstants.BOTTOM) ); JPanel panel; JComboBox align; f.getContentPane().add( panel = new JPanel() ); panel.add( new JLabel( "Hor text posit" ) ); panel.add( align = new JComboBox( horPosit ) ); align.addItemListener( new ItemListener() { public void itemStateChanged( ItemEvent e ) { if (e.getStateChange() == ItemEvent.DESELECTED) return; btn.setHorizontalTextPosition( getInt( e.getItem() )); } } ); f.getContentPane().add( panel = new JPanel() ); panel.add( new JLabel( "Ver text posit" ) ); panel.add( align = new JComboBox( verPosit ) ); align.addItemListener( new ItemListener() { public void itemStateChanged( ItemEvent e ) { if (e.getStateChange() == ItemEvent.DESELECTED) return; btn.setVerticalTextPosition( getInt( e.getItem() )); } } ); f.getContentPane().add( panel = new JPanel() ); panel.add( new JLabel( "Hor alignment" ) ); panel.add( align = new JComboBox( horPosit ) ); align.addItemListener( new ItemListener() { public void itemStateChanged( ItemEvent e ) { if (e.getStateChange() == ItemEvent.DESELECTED) return; btn.setHorizontalAlignment( getInt( e.getItem() )); } } ); f.getContentPane().add( panel = new JPanel() ); panel.add( new JLabel( "Ver alignment" ) ); panel.add( align = new JComboBox( verPosit ) ); align.addItemListener( new ItemListener() { public void itemStateChanged( ItemEvent e ) { if (e.getStateChange() == ItemEvent.DESELECTED) return; btn.setVerticalAlignment( getInt( e.getItem() )); } } ); f.pack(); f.setVisible( true ); } }