Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #31011
| From | Cecil Westerhof <Cecil@decebal.nl> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Disabling generated buttons |
| Organization | Decebal Computing |
| References | <874mr41ox9.fsf@Equus.decebal.nl> |
| Date | 2015-02-02 15:16 +0100 |
| Message-ID | <87vbjkz9df.fsf@Equus.decebal.nl> (permalink) |
Op Monday 2 Feb 2015 13:24 CET schreef Cecil Westerhof:
> I defined the following class:
> private enum Colours {
> Blue(Color.BLUE),
> Red(Color.RED),
> Orange(Color.ORANGE),
> Yellow(Color.YELLOW),
> Green(Color.GREEN),
> Cyan(Color.CYAN),
> Magenta(Color.MAGENTA),
> Brown(new Color(0x9C, 0x5D, 0x52)),
> ;
>
> private final Color value;
>
> Colours(Color value) {
> this.value = value;
> }
>
> public Color value() {
> return value;
> }
> }
>
> I use it to add some (Swing) buttons:
> for(int i = 0; i < Colours.values().length; ++i) {
> final Colours colour = Colours.values()[i];
>
> JButton jButton = new JButton("" + colour);
>
> add(jButton, gbc);
> jButton.addActionListener(new ActionListener() {
> public void actionPerformed(ActionEvent e) {
> checkColour(colour);
> }
> });
> gbc.gridx++;
> if( gbc.gridx == 3 ) {
> gbc.gridy++;
> gbc.gridx = 0;
> }
> }
>
> Those buttons are used to select a colour. But when the wrong colour
> is selected I want to disable all the buttons for half a second.
> (Otherwise people could just click very fast at random.)
> How would I do this?
I hoped that there was a ‘smart’ way, but probably not. So I
implemented it in the ‘dumb’ way.
I created a variable to hold them all:
private JButton colourButtons[] = new JButton[Colours.values().length];
I changed the generating into:
for(int i = 0; i < Colours.values().length; ++i) {
final Colours colour = Colours.values()[i];
JButton jButton = new JButton("" + colour);
colourButtons[i] = jButton;
add(jButton, gbc);
jButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
checkColour(colour);
}
});
gbc.gridx++;
if( gbc.gridx == 3 ) {
gbc.gridy++;
gbc.gridx = 0;
}
}
And in checkColour I put the following code:
javax.swing.Timer timer = new javax.swing.Timer(500, new ActionListener() {
public void actionPerformed(ActionEvent e) {
setEnabledColourButtons(true);
}
});
setEnabledColourButtons(false);
timer.setRepeats(false);
timer.start();
This does what I want.
--
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Disabling generated buttons Cecil Westerhof <Cecil@decebal.nl> - 2015-02-02 13:24 +0100
Re: Disabling generated buttons Jeff Higgins <jeff@invalid.invalid> - 2015-02-02 07:47 -0500
Re: Disabling generated buttons Cecil Westerhof <Cecil@decebal.nl> - 2015-02-02 14:03 +0100
Re: Disabling generated buttons Jeff Higgins <jeff@invalid.invalid> - 2015-02-02 08:26 -0500
Re: Disabling generated buttons Jeff Higgins <jeff@invalid.invalid> - 2015-02-02 08:48 -0500
Re: Disabling generated buttons Jeff Higgins <jeff@invalid.invalid> - 2015-02-02 09:06 -0500
Re: Disabling generated buttons Cecil Westerhof <Cecil@decebal.nl> - 2015-02-02 15:17 +0100
Re: Disabling generated buttons Cecil Westerhof <Cecil@decebal.nl> - 2015-02-02 15:16 +0100
Re: Disabling generated buttons FredK <fred.l.kleinschmidt@gmail.com> - 2015-02-02 10:24 -0800
Re: Disabling generated buttons Cecil Westerhof <Cecil@decebal.nl> - 2015-02-02 20:25 +0100
Re: Disabling generated buttons Jeff Higgins <jeff@invalid.invalid> - 2015-02-02 19:29 -0500
Re: Disabling generated buttons Jeff Higgins <jeff@invalid.invalid> - 2015-02-02 19:35 -0500
Re: Disabling generated buttons Jeff Higgins <jeff@invalid.invalid> - 2015-02-02 20:42 -0500
Re: Disabling generated buttons Jeff Higgins <jeff@invalid.invalid> - 2015-02-02 21:10 -0500
Re: Disabling generated buttons Jeff Higgins <jeff@invalid.invalid> - 2015-02-02 23:32 -0500
csiph-web