Metoda public void ...() w innej public void .....() // Java


(kid_m) #1

hej.

metoda/funkcja. zamieszczam uproszczony fragment kodu…

public void ButtonColorOrange1() {

  if (kolory == 1) {

      if (obrysujB1 == 1) {

        buttonColorRed4.setVisible(false);

        buttonColorOrange4.setVisible(true);

        buttonColorYellow4.setVisible(false);

      }

    }

  }


public void ButtonColorYellow1() {

  if (kolory == 1) {

    if ((infPressed == 0) && (bPressed == 0)) {

        buttonColorRed4.setVisible(false);

        buttonColorOrange4.setVisible(false);

        buttonColorYellow4.setVisible(true);

        strokeB1 = colorYellow;

      }

    }

  }

}

.......

takich metod mam około dwudziestu. moje pytanie brzmi:

czy mogę warunek if (kolory == 1) zapisać tylko raz dla wszystkich public void …()?


(Sawyer47) #2

Jesteś pewien, że poprawnie zaprojektowałeś kod? Może dałoby się zrobić jedną metodę z tych dwudziestu, jeśli jedynym “parametrem” z tego co widzę jest kolor.


(kid_m) #3

20 metod odwołuje się do 20 różnych przycisków,

z których każdy robi coś innego po naciśnięciu,

ale wszystkie działają tylko gdy zmienna kolory = 1


(Sawyer47) #4

Za bardzo w Javie, a już szczególnie w AWT/Swing nie mam doświadczenia, ale nie dałoby się zrobić jednej metody która dostawała by argument (jeśli są to callbacki na wciśnięcie przycisku, to chyba masz w tym callbacku dostęp do przycisku, na podstawie którego możesz się chyba zorientować, który został wciśnięty?).