Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > sınav sorusu
Yazar
gzdalhan


avatar

Kayıt: 22.11.2006
23.06.2007-15:56 #23591
 
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Klavye extends Applet implements MouseListener, ActionListener,KeyListener {
	
	String	mesaj="Klavyenizden bir tusa basin lütfen";
	Point nokta;
	Button sil;
	TextArea alan;
	Label kareSayisi;
	int sayi=0;
	int x;
	int y;
	char karakter;
	
public void init() {
		
		 setBackground(Color.pink);
		 sil= new Button("Clear");
		 alan=new TextArea(5,20);
		 kareSayisi= new Label("Kare Sayisi");
		 		 
		 addMouseListener(this);
		 addKeyListener(this);
		 
		 sil.addActionListener(this);
		 
		 add(kareSayisi);
		 add(alan);
		 add(sil);
		 
	}

	public void paint(Graphics g) {
		System.out.println("gozde");
		Font f = new Font("Arial",Font.BOLD	, 14);
		g.setFont(f);	
	}
	
	public void actionPerformed(ActionEvent e)
	{
		String tik=e.getActionCommand();
		if(tik.equals("Clear"))
		{
			Graphics g = getGraphics(); 
				g.setColor(Color.pink);
				g.fillRect(0,0,700,700);
			sayi=0;
		alan.setText("ekran silindi");
	    
		}
		
	}	
	public void keyPressed(KeyEvent event){
		System.out.println("jh");
	}	
	public void keyReleased(KeyEvent event){
	}
	public void keyTyped(KeyEvent event){
	}
	
	public void mousePressed(MouseEvent e)
	{
		Graphics g = getGraphics();
			nokta=e.getPoint();
			g.setColor(Color.blue);
				x=(nokta.x-10);
				y=(nokta.y-10);
			g.drawRect(x,y,20,20);
			
			sayi++;
		alan.setText(" "+sayi);
					
	}
	public void mouseMoved(MouseEvent e)
	{
	}
	public void mouseDragged(MouseEvent e)
	{
	}
	public void mouseReleased(MouseEvent e)
	{
	}
	public void mouseClicked(MouseEvent e)
	{			
	}
	public void mouseEntered(MouseEvent e)
	{
	}
	public void mouseExited(MouseEvent e)
	{
	}

	
}


arakadaslar bu kod neden kalvye hareketlerine duyarlı degil?talk to the hand





Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
23.06.2007-16:51 #23592
Klavyenin ne yapmasını istiyorsun? Klavye girişlerini algılayacak yer için o yere klavyeyi dinlemesini söylemen lazım. Örneğin alan'a odaklıyken klavye dinlemek için:

alan.addKeyListener(this);

kullanman gerekir.





Let`s make this world a better place to live !

Yazar
gzdalhan


avatar

Kayıt: 22.11.2006
23.06.2007-18:12 #23594
ben c ye basıldıgında ekranı temizlemesini istiyorum fakat sanırım kod calışıyken public void keyPressed kısmına hiç girmiyor bile ...





Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
23.06.2007-19:00 #23595
Eğer klavyenin her daim dinlenmesi isteniyorsa ve ekranda odaklanabilecek en az bir nesne varsa klavyenin bütün nesneler tarafından dinlenmesi gerekiyor. Denemelerim böyle bir sonuca ulaştırdı beni.

addKeyListener(this);
requestFocus();
sil.addKeyListener(this);
alan.addKeyListener(this);


Bir de alan nesnesi için editlemeyi pasifleştirirsen klavye girişi texarea'ya yazılmaz. Tavsiye ederim, çünkü klavye odağında alan nesnesi varken "ekran silindi" yazısının yanında "c" karakteri de ekleniyor.

alan.setEditable(false);

Bundan sonra klavye olayını yönetmek kaldı:

public void keyTyped(KeyEvent event){
char c = event.getKeyChar();
if(c == 'c' || c == 'C') {
repaint();
sayi=0;
alan.setText("ekran silindi");
}
}







Let`s make this world a better place to live !

Yazar
gzdalhan


avatar

Kayıt: 22.11.2006
23.06.2007-19:53 #23597
yardımların için saol, tesekkurler...





Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
23.06.2007-20:06 #23600
Rica ederim, her zaman bekleriz. wink





Let`s make this world a better place to live !

Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb