Yazar |
|
susarac
Kayıt: 24.01.2006 |
|
aRKADAŞLAR KODA BAKIP SÖYLER MİSİNİZ KLAVYA TUŞLARINI VE MOUSE U KULLANABİLİYORUM AMA NEDEN BUTTONLARA BASINCA Bİ SEY OLMUYO
KOD:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class sonson extends Applet implements ActionListener {
int x=400,y=250,radius=30;
boolean canMove=true;
String s=null;
Button yuk,as,sag,sol;
Color col=Color.black;
public void init(){
Button yuk=new Button (" yukarı ");
Button as=new Button(" aşağı ");
Button sag=new Button (" sağa ");
Button sol=new Button(" sola ");
this.setLayout(new FlowLayout(FlowLayout.CENTER));
this.add(yuk);
this.add(as);
this.add(sag);
this.add(sol);
setBackground(Color.WHITE);
}
public boolean mouseDown(Event e, int a, int b)
{
canMove = false ;
if(a>=x-radius && b<=x+radius)
if(b>=y-radius && b<=y+radius)
canMove = true ;
return true ;
}
public boolean mouseDrag(Event e, int a, int b)
{
if(canMove)
{
x = a ;
y = b ;
}
repaint() ;
return true ;
}
public boolean keyDown(Event e,int k)
{
if(e.id == Event.KEY_ACTION)
{
switch(k)
{
case Event.UP :
y -= 5 ;
repaint() ;
break ;
case Event.DOWN :
y += 5 ;
repaint() ;
break ;
case Event.LEFT :
x -= 5 ;
repaint() ;
break ;
case Event.RIGHT :
x += 5 ;
repaint() ;
break ;
case Event.F1 :
col = Color.black ;
repaint() ;
break ;
case Event.F2 :
col = Color.cyan ;
repaint() ;
break ;
case Event.F3 :
col = Color.gray ;
repaint() ;
break ;
case Event.F4 :
col = Color.green ;
repaint() ;
break ;
case Event.F5 :
col = Color.magenta ;
repaint() ;
break ;
case Event.F6 :
col = Color.orange ;
repaint() ;
break ;
case Event.F7 :
col = Color.red ;
repaint() ;
break ;
case Event.F8 :
col = Color.yellow ;
repaint() ;
break ;
case Event.F9 :
col = Color.pink ;
repaint() ;
break ;
case Event.F10 :
col = Color.blue ;
repaint() ;
break ;
}
}
return true;
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==yuk){
y-=5;
repaint();}
else if(e.getSource()==as){
y+=5;
repaint();
}
else if(e.getSource()==sag){
x+=5;
repaint();
}
else if(e.getSource()== sol){
x-=5;
repaint();
}
}
public void paint(Graphics g){
s="x:"+x+" "+"y:"+y;
g.drawString(s,400,10);
setForeground(col) ;
g.drawOval(x,y,radius,radius);
}
}
www.technooweb.net
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
öncelikle action listener eklememişsin.
bunun dışında global değişkenleri içerde local olarak tanımladın tekrar
fakat this kullanıp globalleri eklemişsin.
|
package com.orhan.yilmaz;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class test extends Applet implements ActionListener {
int x=400,y=250,radius=30;
boolean canMove=true;
String s=null;
Button yuk,as,sag,sol;
Color col=Color.black;
public void init(){
//yukarıda butonları tanımlamıssın bi daha Button yuk=new Button dememen lazım
yuk=new Button(" yukarı ");
as=new Button(" aşağı ");
sag=new Button(" sağa ");
sol=new Button(" sola ");
this.setLayout(new FlowLayout(FlowLayout.CENTER));
this.add(yuk);
this.add(as);
this.add(sag);
this.add(sol);
setBackground(Color.WHITE);
//action listenerin yok hepsine ekle
yuk.addActionListener(this);
}
public boolean mouseDown(Event e, int a, int b) {
canMove = false ;
if(a>=x-radius && b<=x+radius)
if(b>=y-radius && b<=y+radius)
canMove = true ;
return true ;
}
public boolean mouseDrag(Event e, int a, int b) {
if(canMove) {
x = a ;
y = b ;
}
repaint() ;
return true ;
}
public boolean keyDown(Event e,int k) {
if(e.id == Event.KEY_ACTION) {
switch(k) {
case Event.UP :
y -= 5 ;
repaint() ;
break ;
case Event.DOWN :
y += 5 ;
repaint() ;
break ;
case Event.LEFT :
x -= 5 ;
repaint() ;
break ;
case Event.RIGHT :
x += 5 ;
repaint() ;
break ;
case Event.F1 :
col = Color.black ;
repaint() ;
break ;
case Event.F2 :
col = Color.cyan ;
repaint() ;
break ;
case Event.F3 :
col = Color.gray ;
repaint() ;
break ;
case Event.F4 :
col = Color.green ;
repaint() ;
break ;
case Event.F5 :
col = Color.magenta ;
repaint() ;
break ;
case Event.F6 :
col = Color.orange ;
repaint() ;
break ;
case Event.F7 :
col = Color.red ;
repaint() ;
break ;
case Event.F8 :
col = Color.yellow ;
repaint() ;
break ;
case Event.F9 :
col = Color.pink ;
repaint() ;
break ;
case Event.F10 :
col = Color.blue ;
repaint() ;
break ;
}
}
return true;
}
public void actionPerformed(ActionEvent e){
System.out.println(e.getSource());
if(e.getSource()==yuk){
this.setBackground(Color.red);
y-=5;
repaint();}
else if(e.getSource()==as){
y+=5;
repaint();
} else if(e.getSource()==sag){
x+=5;
repaint();
}
else if(e.getSource()== sol){
x-=5;
repaint();
}
}
public void paint(Graphics g){
s="x:"+x+" "+"y:"+y;
g.drawString(s,400,10);
setForeground(col) ;
g.drawOval(x,y,radius,radius);
}
}
|
N/A
|
|
Yazar |
|
susarac
Kayıt: 24.01.2006 |
|
Denedim fakat o zaman da klavye tuşları işe yaramıyor.
www.technooweb.net
|
|
Yazar |
|
susarac
Kayıt: 24.01.2006 |
|
www.technooweb.net
|
|
Yazar |
|
bora
Istanbul
Kayıt: 14.01.2006 |
|
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class sonson extends Applet {
int x=400,y=250,radius=30;
boolean canMove=true;
String s=null;
Button yuk,as,sag,sol;
Color col=Color.black;
public void init(){
yuk=new Button(" yukarı ");
as=new Button(" aşağı ");
sag=new Button(" sağa ");
sol=new Button(" sola ");
this.setLayout(new FlowLayout(FlowLayout.CENTER));
this.add(yuk);
this.add(as);
this.add(sag);
this.add(sol);
setBackground(Color.WHITE);
yuk.addActionListener(new action_adapter(this,"yuk"));
as.addActionListener(new action_adapter(this,"as"));
sag.addActionListener(new action_adapter(this,"sag"));
sol.addActionListener(new action_adapter(this,"sol"));
this.addKeyListener(new key_adapter(this));
yuk.addKeyListener(new key_adapter(this));
as.addKeyListener(new key_adapter(this));
sag.addKeyListener(new key_adapter(this));
sol.addKeyListener(new key_adapter(this));
this.addMouseListener(new mouse_adapter(this));
this.addMouseMotionListener(new mouse_drag_adapter(this));
}
public void mouse_Down(MouseEvent e) {
canMove = false ;
if(e.getX()>=x-radius && e.getY()<=x+radius)
if(e.getY()>=y-radius && e.getY()<=y+radius)
canMove = true ;
}
public void mouseDrag(MouseEvent e) {
if(canMove) {
x = e.getX() ;
y = e.getY() ;
}
repaint() ;
}
public void yukari_actionPerformed(ActionEvent e) {
y-=5;
repaint();
}
public void asagi_actionPerformed(ActionEvent e) {
y+=5;
repaint();
}
public void saga_actionPerformed(ActionEvent e) {
x+=5;
repaint();
}
public void sola_actionPerformed(ActionEvent e) {
x-=5;
repaint();
}
public void keyReleased(KeyEvent e) {
switch(e.getKeyCode()) {
case KeyEvent.VK_UP :
y -= 5 ;
repaint() ;
break ;
case KeyEvent.VK_DOWN :
y += 5 ;
repaint() ;
break ;
case KeyEvent.VK_LEFT :
x -= 5 ;
repaint() ;
break ;
case KeyEvent.VK_RIGHT :
x += 5 ;
repaint() ;
break ;
case KeyEvent.VK_F1 :
col = Color.black ;
repaint() ;
break ;
case KeyEvent.VK_F2 :
col = Color.cyan ;
repaint() ;
break ;
case KeyEvent.VK_F3 :
col = Color.gray ;
repaint() ;
break ;
case KeyEvent.VK_F4 :
col = Color.green ;
repaint() ;
break ;
case KeyEvent.VK_F5 :
col = Color.magenta ;
repaint() ;
break ;
case KeyEvent.VK_F6 :
col = Color.orange ;
repaint() ;
break ;
case KeyEvent.VK_F7 :
col = Color.red ;
repaint() ;
break ;
case KeyEvent.VK_F8 :
col = Color.yellow ;
repaint() ;
break ;
case KeyEvent.VK_F9 :
col = Color.pink ;
repaint() ;
break ;
case KeyEvent.VK_F10 :
col = Color.blue ;
repaint() ;
break ;
}
}
public void paint(Graphics g){
s="x:"+x+" "+"y:"+y;
g.drawString(s,400,10);
setForeground(col) ;
g.drawOval(x,y,radius,radius);
}
}
class key_adapter extends KeyAdapter {
private sonson bagla;
key_adapter(sonson bagla) {
this.bagla = bagla;
}
public void keyReleased(KeyEvent e) {
bagla.keyReleased(e);
}
}
class action_adapter implements ActionListener {
private sonson bagla;
private String komut;
action_adapter(sonson bagla,String komut) {
this.bagla = bagla;
this.komut = komut;
}
public void actionPerformed(ActionEvent e) {
if(komut == "yuk")
bagla.yukari_actionPerformed(e);
if(komut == "as")
bagla.asagi_actionPerformed(e);
if(komut == "sag")
bagla.saga_actionPerformed(e);
if(komut == "sol")
bagla.sola_actionPerformed(e);
}
}
class mouse_adapter extends MouseAdapter {
private sonson bagla;
mouse_adapter(sonson bagla) {
this.bagla = bagla;
}
public void mousePressed(MouseEvent e) {
bagla.mouse_Down(e);
}
}
class mouse_drag_adapter extends MouseMotionAdapter {
private sonson bagla;
mouse_drag_adapter(sonson bagla) {
this.bagla = bagla;
}
public void mouseDragged(MouseEvent e) {
bagla.mouseDrag(e);
}
}
butonların klavye girişi için odaklandıgından dolayı keyEvent lerin çalışmamakta idi
yani butonlarının da klavye girdilerini dinlemesi gerekmekte
bu marka kod istedigini yapar.kafana takılan yer varsa sor acıklayayım.
@yelloware
|
|
Yazar |
|
susarac
Kayıt: 24.01.2006 |
|
Yukarıda yazdığın kodu aynen kopyala yapıştır yaptım ama bir sürü hata verdi.Benim anlamadığım butonlarla klayve tuşlarını neden biribirine bağladın. Onlar neden bağımsız olarak çalışmıyo
www.technooweb.net
|
|
Yazar |
|
bora
Istanbul
Kayıt: 14.01.2006 |
|
öncelikle kodda hata olmadıgını sölim.sen ne hatası ile karsılastın yazar mısın?
class'ı html içine gömüp buraya attım bakabilirsin
http://members.lycos.co.uk/bdemir/applet/Sonson.htm
neden butonların klavye ile baglandıgına gelince.önceki postta da söledim gibi butonlardan herhangi biri seçili iken appletin klavye olaylarını dinlemez.çünkü klavye girdi odağı secilen butona yönlenmiştir.o yüzdendir ki butonlarına da keyListener bağlaman gerekmekte.
@yelloware
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
| import java.applet.*;
import java.awt.*;
import java.awt.event.*;
//key listeneri implement ediyoruz
public class test extends Applet implements ActionListener,KeyListener {
int x=400,y=250,radius=30;
boolean canMove=true;
String s=null;
Button yuk,as,sag,sol;
Color col=Color.black;
public void init(){
//yukarıda butonları tanımlamıssın bi daha Button yuk=new Button dememen lazım
yuk=new Button(" yukarı ");
as=new Button(" aşağı ");
sag=new Button(" sağa ");
sol=new Button(" sola ");
this.setLayout(new FlowLayout(FlowLayout.CENTER));
this.add(yuk);
this.add(as);
this.add(sag);
this.add(sol);
setBackground(Color.WHITE);
//action listenerin yok hepsine ekle
yuk.addActionListener(this);
//key listeneri applete register ediyoruz
this.setFocusable(true);
this.addKeyListener(this);
}
public boolean mouseDown(Event e, int a, int b) {
canMove = false ;
if(a>=x-radius && b<=x+radius)
if(b>=y-radius && b<=y+radius)
canMove = true ;
return true ;
}
public boolean mouseDrag(Event e, int a, int b) {
if(canMove) {
x = a ;
y = b ;
}
repaint() ;
return true ;
}
public boolean keyDown(Event e,int k) {
if(e.id == Event.KEY_ACTION) {
switch(k) {
case Event.UP :
y -= 5 ;
repaint() ;
break ;
case Event.DOWN :
y += 5 ;
repaint() ;
break ;
case Event.LEFT :
x -= 5 ;
repaint() ;
break ;
case Event.RIGHT :
x += 5 ;
repaint() ;
break ;
case Event.F1 :
col = Color.black ;
repaint() ;
break ;
case Event.F2 :
col = Color.cyan ;
repaint() ;
break ;
case Event.F3 :
col = Color.gray ;
repaint() ;
break ;
case Event.F4 :
col = Color.green ;
repaint() ;
break ;
case Event.F5 :
col = Color.magenta ;
repaint() ;
break ;
case Event.F6 :
col = Color.orange ;
repaint() ;
break ;
case Event.F7 :
col = Color.red ;
repaint() ;
break ;
case Event.F8 :
col = Color.yellow ;
repaint() ;
break ;
case Event.F9 :
col = Color.pink ;
repaint() ;
break ;
case Event.F10 :
col = Color.blue ;
repaint() ;
break ;
}
}
return true;
}
public void actionPerformed(ActionEvent e){
System.out.println(e.getSource());
if(e.getSource()==yuk){
this.setBackground(Color.red);
y-=5;
repaint();} else if(e.getSource()==as){
y+=5;
repaint();
} else if(e.getSource()==sag){
x+=5;
repaint();
} else if(e.getSource()== sol){
x-=5;
repaint();
}
}
public void paint(Graphics g){
s="x:"+x+" "+"y:"+y;
g.drawString(s,400,10);
setForeground(col) ;
g.drawOval(x,y,radius,radius);
}
/* override edilen fonksiyonlar baslangıc*/
public void keyTyped(KeyEvent e) {
System.out.println(e.getKeyCode());
}
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyCode());
}
public void keyReleased(KeyEvent e) {
System.out.println(e.getKeyCode());
}
/* override edilen fonksiyonlar bitis*/
} |
bu koda boranın eklemiş olduğu adapter classlarını eklersen düzelir.
N/A
|
|
Yazar |
|
susarac
Kayıt: 24.01.2006 |
|
classları ayrı ayrı mı derlemem gerekiyo. yoksa hepsini tek textfile a ekleyip derlemem mi.
Bora senin yazdığın kodları aynen derlediğimde addActionListener kısımlarında hata veriyo
www.technooweb.net
|
|
Yazar |
|
susarac
Kayıt: 24.01.2006 |
|
Tamam Bora kodların doğruymuş ben yanlış derlemişim.Teşekkürler.
Ayrıca orhan yardımların için sana da teşekkür ederim.
Topic amacına ulaştı.
www.technooweb.net
|
|
Yazar |
|
bora
Istanbul
Kayıt: 14.01.2006 |
|
önemli değil kolay gelsin
@yelloware
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | |