jaap wrote:
I'm a real noob with java. I worked for 4 years with php but now I
have to use java.
I'm looking for a clean way to get an action behind a
button/menuitem. I already found the class actionListener. but the
method actionpreformed is not very clean if you want to give 20
buttons an action. The way I know is 20 times else if. There must be
an better method.
With you program just implement an ActionListener. After this you
have to add the required actionPerformed method. Then just check for
which buttons were selected. Here is an example code for buttons
objects. Naturally this is not a complete program but just info you
were asking about
public class MyButtons implements ActionListener
{
private JButton deleteButton;
private JButton reloadButton;
private JButton returnButton;
private JButton commitButton;
private final String TEXT_DETELE = "Delete";
private final String TEXT_RELOAD = "Reload";
private final String TEXT_RETURN = "Return";
private final String TEXT_COMMIT = "Commit";
private final String _Click = "Click this
button to ";
private final String _toolTipDelete = this._Click +
"Deleteed Se;ected quote from Database";
private final String _toolTipReload = this._Click +
"Reload all remaintng dupicate Quotes from Database";
private final String _toolTipReturn = this._Click +
"Return Insert Quotes";
private final String _toolTipCommit = this._Click +
"Commit all Delete's to Database";
public MyButtons ()
{
deleteButton = buildButton (deleteButton, TEXT_DETELE,
KeyEvent.VK_D, _toolTipDelete));
reloadButton = buildButton (reloadButton, TEXT_RELOAD,
KeyEvent.VK_R, _toolTipReload));
returnButton = buildButton (returnButton, TEXT_RETURN,
KeyEvent.VK_X, _toolTipReturn));
commitButton = buildButton (commitButton, TEXT_COMMIT,
KeyEvent.VK_C, _toolTipCommit));
}
private JButton buildButton (JButton jButton, String label, int
keyEvent, String toolTip)
{
jButton = new JButton(label);
jButton.setMnemonic (keyEvent);
jButton.addActionListener (this);
jButton.setActionCommand (label);
jButton.setToolTipText (toolTip);
return jButton;
}
public void actionPerformed (ActionEvent e)
{
if (this.TEXT_RETURN.equals (e.getActionCommand ()))
{
}
else if (this.TEXT_DETELE.equals (e.getActionCommand ()))
{
}
else if (this.TEXT_RELOAD.equals (e.getActionCommand ()))
{
}
else if (this.TEXT_COMMIT.equals (e.getActionCommand
()))
{
}
}
}
"TEXT_RETURN" etc with "this.".
subsequent 'e.getActionCommand()' to 'command'. An old compulsion to
avoid 'expensive' subroutine calls from my Fortran IV days. Not that I