plusnoir
Cadet 3rd Year
- Registriert
- Apr. 2009
- Beiträge
- 36
Hallo,
habe folgendes Problem. Habe den anliegenden Code aus einem Tutorial. Hier soll Animation geübt werden.
Code besteht aus zwei Teilen:
1.
2.
Nun zu meinem Problem. Wenn ich alles richtig verstanden habe, erwartet das Programm ein Actionevent um die x,y-Koordinaten zu verändern. Leider passiert nichts wenn ich kompiliere und Tasten drücke. Also welche Art von Event erwartet es? Ist es hier im Code schon endgültig implementiert, oder muss ich den Event noch definieren? Wenn nicht. Welche Taste solls denn sein die das Event auslöst?
Und eine kleine zweite Frage hätt ich auch noch. In der Klasse Board in der paint-Methode steht g.dispose(); . Was bedeutet das?
Wäre euch sehr verbunden wenn ihr mir als Antwort nicht Links zu der unendlich langen Java-API posten würdet.
Ansonsten danke im voraus.
habe folgendes Problem. Habe den anliegenden Code aus einem Tutorial. Hier soll Animation geübt werden.
Code besteht aus zwei Teilen:
1.
Code:
package star;
import javax.swing.*;
import javax.swing.JFrame;
public class Star extends JFrame {
public Star() {
add(new Board());
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300, 300);
setLocationRelativeTo(null);
setTitle("Star");
setVisible(true);
setResizable(true);
}
public static void main(String[] args) {
new Star();
}
}
2.
Code:
package star;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Board extends JPanel implements ActionListener {
Image Star;
Timer Timer;
int x, y;
public Board() {
setBackground(Color.BLACK);
ImageIcon ii = new ImageIcon(this.getClass().getResource("/star.png"));
Star = ii.getImage();
setDoubleBuffered(true);
x = y = 10;
Timer = new Timer(5, this);
Timer.start();
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(Star, 120, 120, this);
Toolkit.getDefaultToolkit().sync();
g.dispose();
}
public void actionPerformed(ActionEvent e) {
x = +1;
y = +1;
if (y > 240) {
x = -45;
y = -45;
}
repaint();
}
}
Nun zu meinem Problem. Wenn ich alles richtig verstanden habe, erwartet das Programm ein Actionevent um die x,y-Koordinaten zu verändern. Leider passiert nichts wenn ich kompiliere und Tasten drücke. Also welche Art von Event erwartet es? Ist es hier im Code schon endgültig implementiert, oder muss ich den Event noch definieren? Wenn nicht. Welche Taste solls denn sein die das Event auslöst?
Und eine kleine zweite Frage hätt ich auch noch. In der Klasse Board in der paint-Methode steht g.dispose(); . Was bedeutet das?
Wäre euch sehr verbunden wenn ihr mir als Antwort nicht Links zu der unendlich langen Java-API posten würdet.
Ansonsten danke im voraus.