I guess you could create custom JButton's and add in an instance member which would be set to a certain value when each instance of each JButton is created then query the button later on to get the value.
Code:import java.awt.*; import javax.swing.*; import java.awt.event.*; class XButton extends JButton{ private String whichbutton; public XButton(){ this("rubberbutton"); } public XButton(String whichbutton){ this.whichbutton = whichbutton; } public XButton(String name, String whichbutton){ super(name); this.whichbutton = whichbutton; } public String getButton(){return whichbutton;} } public class X{ static JLabel jl; public static void main(String[] args){ JButton[] jb = new JButton[3]; jb[0] = new XButton(); jb[1] = new XButton("metalbutton"); jb[2] = new XButton("Cork Button","corkbutton"); JFrame jf = new JFrame(); Container c = jf.getContentPane(); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); jl = new JLabel(); for(int i = 0; i < jb.length; ++i){ jb[i].addActionListener(new ButtonListener()); p1.add(jb[i]); } p2.add(jl); c.add(p1,BorderLayout.NORTH); c.add(p2,BorderLayout.SOUTH); jf.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent evt){ System.exit(0); } }); jf.setSize(400,300); jf.setVisible(true); } static class ButtonListener implements ActionListener{ public void actionPerformed(ActionEvent evt){ XButton xb = (XButton) evt.getSource() ; jl.setText("Button " + xb.getButton() + " was pressed"); } } }




Reply With Quote