2013-12-14 2 views
0

Что я должен делать, если я хочу, чтобы выполнить ActionListener на кнопку снова и снова, так что он не будет давать мне те же анс снова ...Как я буду выступать в одном и том же классе снова и снова в одном классе?

Например:

down = new JButton("DOWN-1"); 
down.setSize(down.getPreferredSize()); 
down.setLocation(100,200); 
down.addActionListener(this); 
left=new JButton("LEFT-1"); 
left.setSize(left.getPreferredSize()); 
left.setLocation(100,250); 
left.addActionListener(this); 
right=new JButton("RIGHT-1"); 
right.setSize(right.getPreferredSize()); 
right.setLocation(100,300); 
right.addActionListener(this); 
up1=new JButton("UP-2"); 
up1.setSize(up1.getPreferredSize()); 
up1.setLocation(550,150); 
up.addActionListener(this); 

@Override 
public void actionPerformed(ActionEvent a) 
{ 
    int counter=370; 

    if (a.getSource()==up) { 
     System.out.println(counter); 

     x=250+62+62; 
     y=60+62+62+62+62+62; 
     b1.setLocation(x,counter-62); 
     l19.setLocation(x,counter); 
    } 
} 

В этом Я хочу использовать кнопку снова и снова, но она не работает ...

+1

Ваш вопрос непонятен. Вы также не выполняете прослушиватель, слушатель вызывается, когда что-то происходит. – zapl

+0

О, ничего себе, я случайно удалил свой комментарий, но вот проблема: 'up.addActionListener (this);' должно быть 'up1.addActionListener (this);' – iWumbo

+0

Я знаю .... но я хочу выполнить его снова и снова .... @ zapl –

ответ

0

Пока ваш вопрос Sooo очень запутан. Я думаю, что мне удалось извлечь значение. «... если я хочу снова и снова выполнять ActionListener, ...». Я предполагаю, что вы хотите, чтобы вы могли использовать кнопку более одного раза.

Это то, что я вижу в вашем коде, что сделало бы вас думаю вы не можете использовать его более одного раза.

@Override 
public void actionPerformed(ActionEvent a) 
{ 
    int counter=370; 

    if (a.getSource()==up) { 
     System.out.println(counter); 

     x=250+62+62; 
     y=60+62+62+62+62+62; 
     b1.setLocation(x,counter-62); 
     l19.setLocation(x,counter); 
    } 
} 

Что происходит, что когда-либо нажмите на кнопку, расположение всегда набор на том же месте. В исходном местоположении меня отличают, поэтому он работает над первым кликом (местоположение изменится). Но после этого каждый клик ведет в одно и то же место, поэтому все, что вы ожидаете, переместится.

Хотя я понятия не имею, что делает ваш код, от вашего минимального «объяснения» (если вы даже можете это назвать). Я могу дать предложение. Похоже, что counter является фактором смещения, поэтому вам может понадобиться глобальная область действия и изменять ее значение каждый раз, когда нажимается кнопка. Что-то вроде этого

int counter = 370; 

@Override 
public void actionPerformed(ActionEvent a) 
{ 
    if (a.getSource()==up) { 
     counter -= 62;   // this is where you change the value of counter 

     System.out.println(counter); 

     x=250+62+62;   // I have no idea what this is for 
     y=60+62+62+62+62+62; // or this, so I won't comment 
     b1.setLocation(x,counter); // just use the new counter value 
     l19.setLocation(x,counter); 
    } 
} 
Смежные вопросы