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

JavaFX - dostęp do TextArea z innej klasy

Mały hosting, OGROMNE możliwości
0 głosów
503 wizyt
pytanie zadane 31 października 2017 w Java przez wojtek2002 Nowicjusz (140 p.)

W klasie A mam TextArea textArea i Button przycisk, chciałbym zrobić obsługę przycisku w klasie B, na razie wiem jak sprawdzić czy przycisk został kliknięty, ale jak mogę pobrać tekst z textArea do Stringa? normalnie zrobiłbym to "String tekst= textArea.getText();", ale jak dostać się z klasy B do textArea w klasie A?

//klasa A        
B ctrl = new B();        

        TextArea textArea= new TextArea();
        textArea.setMaxHeight(100);
        grid.add(textArea, 0, 1);

        Button przycisk= new Button("Przycisk");
        przycisk.setOnAction(ctrl.getHandler());


/////////////////////////////////////////////////////
//klasa B
    private EventHandler<ActionEvent> EH;


    public B() {
        EH = new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                String value = ((Button) event.getSource()).getText();
                if (value.equals("Przycisk")) {
                    System.out.println("Kliknales przycisk");

                }
            }
        };

    }

 

1 odpowiedź

0 głosów
odpowiedź 31 października 2017 przez mbabane Szeryf (79,260 p.)
edycja 31 października 2017 przez mbabane

Na przyklad:

W klasie A utwórz pole typu klasy B i do konstruktora przekaz zawartosc za pomoca getText()

class A
{
    TextArea textArea;
    B b;
    Button button;

    public void buttonOnAction()
	{   
	  b = new B( textArea.getText() );
	  b.doSomethingWithText();
	}

}

class B
{
    private String text
    
    public B(String text)
	{
	   this.text = text;
	}

	public void doSomethingWithText()
	{
		System.out.println(text);
	}
}

 

komentarz 1 listopada 2017 przez wojtek2002 Nowicjusz (140 p.)

Chciałem coś bez umieszczanie w klasie A niczego typu buttonOnAction()

Próbowałem tak, ale wyskakuje mi NullPointerException:

public class A extends Application{
	B b = new B();

	private final TextArea textArea = new TextArea();
	private final Button przycisk = new Button("Przycisk");

	@Override
    	public void start(Stage stage) {
		textArea.setMaxHeight(100);
        	grid.add(textArea, 0, 1);

		HBox hbBtn = new HBox(10);
        	hbBtn.setAlignment(Pos.BOTTOM_RIGHT);
       	 	hbBtn.getChildren().add(przycisk);
        	grid.add(hbBtn, 1, 8);

		przycisk.setOnAction(b.getHandler());
	}

    	public String getTextArea() {
        	String textAreaTekst= taTekstDoZaszyfrowania.getText();
        	return textAreaTekst;
    	}
}

public class B {
	private A a;
	private TextArea textArea;
	private EventHandler<ActionEvent> EH;
	
	public Kontroler() {
        	EH = new EventHandler<ActionEvent>() {
            	@Override
            	public void handle(ActionEvent event) {
                	String value = ((Button) event.getSource()).getText();
                	if (value.equals("Przycisk")) {
                    	System.out.println("Kliknales przycisk");
                    	pobierzTextArea();
                	}
            	}
        	};
    	}

    	public EventHandler<ActionEvent> getHandler() {
        	return EH;
    	}

    	private String pobierzTextArea() {
        	String tekst= a.getTextArea();
        	return tekst;
    	}	
}

 

komentarz 1 listopada 2017 przez mbabane Szeryf (79,260 p.)
Jeśli jest to możliwe to zastosuj podejście takie jak tutaj:

https://www.youtube.com/watch?v=hGxQyCTCWic

i w kolejnym odcinku.

Podobne pytania

0 głosów
2 odpowiedzi 1,140 wizyt
pytanie zadane 5 maja 2019 w Java przez poldeeek Mądrala (5,980 p.)
0 głosów
2 odpowiedzi 621 wizyt
pytanie zadane 19 stycznia 2017 w Java przez zperkowski Stary wyjadacz (11,150 p.)
0 głosów
1 odpowiedź 1,754 wizyt
pytanie zadane 9 listopada 2017 w C# przez garris Użytkownik (660 p.)

93,717 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,261 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...