PeaBull
Grünschnabel
Hallo,
habe folgendes Problem,
ich erstelle momentan ein Spiel, dabei werden 2 Objekte erzeugt, einerseits ein fallender Ball, andererseits ein Strich, den ich durch das Klicken auf 2 verschiedene Punkte im Frame erzeuge. Ich habe in meiner Paint einen Thread mit sleep, aber dabei kann ich halt keinen Strich zeichnen. Ich habe den Tipp bekommen, es mit einem EDT zu versuchen, also habe ich recherchiert, bin aber nur auf Unfug oder auf englische Seiten gestoßen und da mein Englisch nicht zu dem Besten gilt, frage ich einfach mal euch, wie erstelle ich einen EDT und wo setzt ich diesen ein?(Timer nicht beachten, den habe ich nur zur Probe drinnen)
habe folgendes Problem,
ich erstelle momentan ein Spiel, dabei werden 2 Objekte erzeugt, einerseits ein fallender Ball, andererseits ein Strich, den ich durch das Klicken auf 2 verschiedene Punkte im Frame erzeuge. Ich habe in meiner Paint einen Thread mit sleep, aber dabei kann ich halt keinen Strich zeichnen. Ich habe den Tipp bekommen, es mit einem EDT zu versuchen, also habe ich recherchiert, bin aber nur auf Unfug oder auf englische Seiten gestoßen und da mein Englisch nicht zu dem Besten gilt, frage ich einfach mal euch, wie erstelle ich einen EDT und wo setzt ich diesen ein?(Timer nicht beachten, den habe ich nur zur Probe drinnen)
Code:
import java.awt.*;
import java.awt.event.*;
import java.util.Timer;
import java.util.TimerTask;
//final Timer timer = new Timer();
//TimerTask task = new TimerTask() {
//public void run() {
////if (abbruchbedingung) timer.cancel();
////else deineFunktion();
//}}
class ZeigerOrt extends Frame implements MouseListener
{
TextField tf;
int x1,y1,x2,y2,x3,y3,x4,y4;
int i=0;
//start des Timers:
//timer.scheduleAtFixedRate(task, 0, 1000);
// wiederholt sich unendlich immer nach einer Sekunde (1000 Millisekunden)
ZeigerOrt()
{
setSize(600,600);
setTitle("Punkt Koordinaten!");
setBackground(Color.gray);
setLayout(null);
tf= new TextField("");
tf.setBounds(40,60,300,20);
tf.setBackground(Color.lightGray);
//tf.addMouseListener(this);
add(tf);
addMouseListener(this);
setVisible(true);
}
public void mouseClicked(MouseEvent m)
{
if(m.getClickCount()==1)
i=i+m.getClickCount();
if(i==1 || (i%4==1))
{
x1 = m.getX();
y1 = m.getY();
}
if(i==2 || (i%4==2))
{
x2 = m.getX();
y2 = m.getY();
}
if(i==3 || (i%4==3))
{
x3 = m.getX();
y3 = m.getY();
}
if(i%4==0)
{
x4 = m.getX();
y4 = m.getY();
}
tf.setText("P1:"+x1+" "+y1+" P2:"+x2+" "+y2+" P3:"+x3+" "+y3+" P4:"+x4+" "+y4+" "+i);
System.out.println(m+" "+i);
}
public void mouseEntered(MouseEvent a){}
public void mouseExited(MouseEvent b){}
public void mousePressed(MouseEvent c){}
public void mouseReleased(MouseEvent d){}
public void paint(Graphics g)
{
if ((i==2)||(i==3)||(i%4==2)||(i%4==3))
{g.drawLine(x1, y1, x2, y2);}
if ((i==4)||(i%4==0)||(i%4==1))
{g.drawLine(x3, y3, x4, y4);}
g.setColor(Color.black);
repaint();
for (int y10=20; y10<=470; y10++)
{
// try
// {
// Thread.sleep(10);
// }
// catch(InterruptedException x){}
// javax.swing.Timer t = new javax.swing.Timer( 1000, new ActionListener() {
// public void actionPerformed( ActionEvent e ) {
// g.repaint();}
// }
// //start des Timers:
//timer.scheduleAtFixedRate(task, 0, 90);
// wiederholt sich unendlich immer nach einer Sekunde (1000 Millisekunden)
g.clearRect(100, y10-1, 20, 20);
g.fillOval(100,y10,20,20);
g.setColor(new Color(255, 0, 0));
}
}
public static void main (String a[])
{
ZeigerOrt z = new ZeigerOrt();
}
}