knap er ligeglad med disable
Jeg har nu prøvet at hjælpe en ven med et problem i en javaapplet han har, og vi har nu begget stirret os blinde i et par timer over noget der sikkert er et miniproblem.Forestil jer en javaapplet hvor der er nogle knapper - disse knapper skal ændre farve når man trykker på den, men de skal kun skifte en eneste gang. Når man trykker på dem første gang sættes de til at være disablede.
Problemet er her, at selvom de er disablede (kan ses når vi prøver at skrive knappen ud) så skifter de stadig farve og kan stadig blive trykket på. Er der nogen der har en god forklaring til hvorfor i alverden det kan lade sig gøre? Kode eksempel følger hvor, hvis man laver en form med sådan en ToeButton på og clicker på den, så skifter den hele tiden farve mellem sort og blå selvom den burde være disabled:
public class ToeButton extends JButton
{
int state = BLANK;
public int buttonNr;
public ToeButton(int x)
{
addMouseListener(new ML());
setBackground(Color.cyan);
buttonNr = x;
}
class ML extends MouseAdapter
{
public void mouseClicked (MouseEvent e)
{
JButton tester =(JButton) e.getSource();
Object[] mla = tester.getMouseListeners();
for(int i=0;i<mla.length;i++)
{
System.out.println(i+": "+mla[i]);
}
System.out.println();
tester.setEnabled(false);
if(tester.getBackground() == Color.BLACK)
{tester.setBackground(Color.blue);}
else
tester.setBackground(Color.BLACK);
}
}
}
