• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyświetlenie komunikatu w oknie przy użyciu innej klasy

0 głosów
707 wizyt
pytanie zadane 13 kwietnia 2016 w Java przez piekarnik Użytkownik (720 p.)

Witam mam następujący problem i już trochę nad nim siedzę.
Mam w jednej klasie stworzone okno z przyciskiem i polem tekstowym, chciałbym żeby wyświetlił się komunikat w tym polu po naciśnięciu przycisku - jednak samo zdefiniowanie zachowania przycisku ma być w innym pliku.

Mam klasę Okno, w niej String S i pole tekstowe POLE
Tworzę też nową klasę przy naciśnięciu:
button.addActionListener(new ButtonAction());

Teraz co mam napisać w klasie ButtonAction? To co mam nie działa.

public class ButtonAction extends Okno implements ActionListener {
	
	@Override
	public void actionPerformed(ActionEvent e) {
		POLE.setText(S.GetHex());
	}
}

 

2 odpowiedzi

0 głosów
odpowiedź 13 kwietnia 2016 przez MCPlayG Użytkownik (840 p.)
wybrane 13 kwietnia 2016 przez piekarnik
 
Najlepsza
  1. http://www.javatpoint.com/java-naming-conventions - proszę ciebie, korzystaj z konwencji nazewnictwa Javy. Dodam, że nazwy muszą być w języku angielskim. :)
  2. Roszerzając (extends'ując) klasę Okno nie masz dostępu do okna, w którym chcesz zastosować akcję. Usuń extends Okno.

    Jedyne rozwiązanie, jakie widzę to podanie w konstruktorze instancji klasy Okno, a w tej klasie zrobienie getterów, lub ustawienie zmiennych z elementami okna na publiczne (lub protected, gdy są w tym samym package).
komentarz 13 kwietnia 2016 przez ReksetoDev Gaduła (4,530 p.)
getteru settery w oknie i przeciazyc ta metode najlepiej zeby przyjmowala okno(musi) :) mcplayg nie ucz z public bo potem 0 hermetyzacji jest.
0 głosów
odpowiedź 13 kwietnia 2016 przez bumpMind Gaduła (4,260 p.)
Z poziomu klasy ButtonAction nie masz dostępu do pola tekstowego które chcesz zmienić, najprostszym sposobem było by przekazanie pola tekstowego jako argument np konstruktora klasy ButtonAction, może nie jest to zbyt estetyczne ale napewno zadziała, koniecznie implementacja zachowania przycisku musi być w innym pliku?
komentarz 13 kwietnia 2016 przez piekarnik Użytkownik (720 p.)
No właśnie na tym polega zadanie, że implementacja przycisku ma być w innym pliku - dodam, że w oknie jest kilka przycisków - a tylko jeden ma być w innym pliku.
1
komentarz 13 kwietnia 2016 przez bumpMind Gaduła (4,260 p.)
Czyli domyślam się że dany przycisk będzie robił coś więcej niż ustawiał tekst, można zatem w klasie ActionButton dorzucić metodę która będzie pobierała pole tekstowe które chcesz edytować. Wtedy kolejno utworzysz obiekt klasy ActionButton dalej wywołasz metodę np ustawPoleTekstowe której argumentem będzie dane pole a na koniec podepniesz ten obiekt jako ActionListener do przycisku

Podobne pytania

+2 głosów
1 odpowiedź 975 wizyt
0 głosów
1 odpowiedź 914 wizyt
pytanie zadane 8 listopada 2017 w PHP przez euforia Nowicjusz (180 p.)
0 głosów
0 odpowiedzi 153 wizyt

93,600 zapytań

142,524 odpowiedzi

322,993 komentarzy

63,085 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...