2015-11-02 2 views
1

Мне было интересно, как я могу сделать свои кнопки переключателями в этом классе, которые я вызываю из другого класса. Но он идет в и делает только одна смена кнопки и это все ..Как я могу переключаться между кнопками без петли?

package code; 

import java.awt.Font; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.Random; 

import javax.swing.JButton; 


public class Something implements ActionListener { 

    private Game G; 
    private int random; 
    private JButton a; 
    private JButton b; 
    private JButton c; 
    private Font i; 

    public Something(Game g, int rand, JButton d, JButton e, JButton f, Font h) { 
     G = g; 
     random = rand; 
     a = d; 
     b = e; 
     c = f; 
     i = h; 
    } 

    public void actionPerformed(ActionEvent e) { 
     // TODO Auto-generated method stub 
     G.increment(); 
     if (random == 0) { 
      a.setText("A"); 
      a.setEnabled(true); 
      b.setEnabled(false); 
      c.setEnabled(false); 
      SuperSize(a); 
      SmallerSize(b); 
      SmallerSize(c); 
      random = RandomNum(); 
      ; 
     } else if (random == 1) { 
      b.setText("B"); 
      a.setEnabled(false); 
      b.setEnabled(true); 
      c.setEnabled(false); 
      SuperSize(b); 
      SmallerSize(a); 
      SmallerSize(c); 
      random = RandomNum(); 
     } else if (random == 2) { 
      c.setText("C"); 
      a.setEnabled(false); 
      b.setEnabled(false); 
      c.setEnabled(true); 
      SuperSize(c); 
      SmallerSize(a); 
      SmallerSize(b); 
      random = RandomNum(); 
     } 
    } 

    public int RandomNum() { 
     Random r = new Random(); 
     int rand = 0; 
     rand = r.nextInt(3); 
     return rand; 
    } 

    public void SuperSize(JButton a) { 
     Font myFont = i.deriveFont(Font.BOLD, i.getSize() * 4); 
     a.setFont(myFont); 
    } 

    public void SmallerSize(JButton a) { 
     a.setFont(i); 
    } 
} 

      } 

Я не знаю, что делать, может вы, ребята, мне помочь?

+1

Для примера [http://stackoverflow.com/a/12228640/230513). – trashgod

+1

Не создавайте новый экземпляр 'Random' каждый раз, когда вы вызываете' RandomNum', вместо этого создаете экземпляр в конструкторе и продолжаете повторно использовать его – MadProgrammer

+0

trashgod, как бы это было включено в мой код? –

ответ

1

Не создавайте новый экземпляр Random каждый раз, когда вы вызываете RandomNum, вместо этого создайте экземпляр в конструкторе и продолжайте его повторно использовать.

public class Something implements ActionListener { 

    //... 

    private Random rnd; 

    public Something(Game g, int rand, JButton d, JButton e, JButton f, Font h) { 
     //... 
     rnd = new Random(); 
    } 

    public int RandomNum() { 
     return rnd.nextInt(3); 
    } 
+0

Это все то же самое, после второго переключателя кнопок, он больше не работает –

+0

Мне нужно больше кода для тестирования. Рассмотрите возможность предоставления [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer

+0

Я до сих пор не знаком с этим сайтом, поэтому я должен просто предоставить такую ​​же проблему в самом маленьком коде, но включая все классы? –

Смежные вопросы