Jak wyczyścić TextArea po kliknięciu?

0

Witam,
pytanie jak w temacie, obecny stan kodu:

import java.applet.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Component.*;
import java.awt.event.*;
import java.util.*;

class Okno extends Frame{
	Okno(String nazwa){
		super(nazwa);
		setResizable(false);
		setSize(400,300);
	}
}

class B1Listener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
  	System.out.println("Wciśnięto przycisk 1");
        System.out.println(e.getActionCommand());
   
	TextArea t1;
   	if (e.getSource() == t1){
   		t1.setText("");
   	}
   		
   	}
} 

public class Kalendarz{
	
	public static void main(String args[]){
				
		Button b1;		
		b1 = new Button("Zapisz");
		
		b1.addActionListener(new B1Listener());
		
		TextArea t1;
		t1 = new TextArea("Tutaj tekst!", 40, 40);
		
		Okno o = new Okno("Kalendarz");	
		o.setLayout(new FlowLayout());
		o.add(b1);
		o.add(t1);		    					
		o.setVisible(true);					
	}
}

W klasie mam umieszczone wyswietlanie potwierdzenie ze wcisnieto przycisk, w jaki sposob wyczyscic t1?
Probowalem rozne werjse, ale mam wrazenie ze cos namieszalem :-/

0

no ja mam podobny problem:p jak wyczyscic JTextArea przed wpisaniem do niej nowego textu?

0

A patrzyliscie w ogole w dokumentacje? np. setText

pozdrawiam
johny

0

No wlasnie patrzylem i w klasie B1Listener jest setText(""); no i wlasnie nie dziala. Zastanawiam sie czy mozna to zrobic w inny sposob, a jezeli nie to co jest zle w tym kodzie? Przy kliknieciu na przycisk, wyswietla komunikat, ze zostal wcisniety a tekstu jednak nie kasuje :-/

0

Oto poprawiny kod:

import java.applet.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Component.*;
import java.awt.event.*;
import java.util.*;

class Okno extends Frame{
        Okno(String nazwa){
                super(nazwa);
                setResizable(false);
        }
}

class B1Listener implements ActionListener {
        
        private TextArea t1;
        
        public B1Listener(TextArea t1) {
        	super();
        	this.t1 = t1;	
        }
        
        public void actionPerformed(ActionEvent e) {
          	System.out.println("Wciśnięto przycisk 1");
        	t1.setText("");                   
        }
}

public class Kalendarz{
       
        private TextArea t1;
       
        public Kalendarz() {

            Button b1;               
            b1 = new Button("Zapisz");
           
            
                           
            t1 = new TextArea("Tutaj tekst!", 40, 40);
            b1.addActionListener(new B1Listener(t1));
           
            Okno o = new Okno("Kalendarz");       
            o.setLayout(new FlowLayout());
            o.add(b1);
            o.add(t1);                                                           
            o.pack();
            o.setVisible(true);                                       
        	
        }
       
        public static void main(String args[]){
           new Kalendarz();                    
        }
}

Gdzie był błąd? Otóż popełniłeś kilka błędów:

  1. metoda getSource() zwraca źódło, które wywołało zdarzenie, w twoim przypadku będzie to Button b1
  2. sam ActionListener musi mieć dostęp do obiektu, który ma byc wyczyszczony
  3. nie mozesz przed sprawdzeniem żródła pisać TextArea t1 bo tworzysz sobie nową zmienną, która jest null'em

ps. johny kolega Dawido wiedział o istnieniu metody setText("") ;)

0

Dzięki wielki, pomogło, teraz widzę że trochę namotałem :-)

0

Mam jeszcze jeden problem, z którym walczę już pare h :-/

Otóż mam klasę:

class WDListener implements ItemListener

która czeka na wybór użytkownika z choice'a i zapisuje wartosc wyboru do zmiennej oraz wyświetla go na ekranie

oraz

klasę:

class B1Listener implements ActionListener

która czeka na naciśnięcie przycisku, a gdy to nastapi, to zapisuje wartosc pola txt do pliku,
chciałbym aby także wartości zmiennych z klasy WDListener byly zapisywane podczas nacisniecia przycisku, tylko nie wiem jak je przekazac do klasy B1Listener, układ klas:

import...

class B1Listener implements ActionListener{...}

class WDListener implements ItemListener{...}

public class Ka{...}
0

Dobra już mam [wstyd] ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1