Hallo,
ich habe gerade meine Ausbildung zum Fachinformatiker begonnen und versuche gerade eine kleine Übungsapplikation zu schreiben (SlotMachine)
Hier der Code:
Mein Problem ist, dass ich versuche das erste Image des jeweiligen Canvas Objects außerhalb des Frames zu zeichnen und es dann reinlaufen lassen möchte. Das Image außerhalb des Frames wird aber nicht gezeichnet.
Bilder befinden sich im Anhang
MfG
Fabio
ich habe gerade meine Ausbildung zum Fachinformatiker begonnen und versuche gerade eine kleine Übungsapplikation zu schreiben (SlotMachine)
Hier der Code:
Java:
package test;
import java.awt.EventQueue;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class TestApp {
private JFrame frame;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
TestApp window = new TestApp();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public TestApp() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 370, 633);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Bilder
Image ten = Toolkit
.getDefaultToolkit()
.getImage(
"D:/dev/workspaces/SlotMachine/SlotMachine/bin/slotmachine/images/10.jpg");
Image jack = Toolkit
.getDefaultToolkit()
.getImage(
"D:/dev/workspaces/SlotMachine/SlotMachine/bin/slotmachine/images/j.jpg");
Image queen = Toolkit
.getDefaultToolkit()
.getImage(
"D:/dev/workspaces/SlotMachine/SlotMachine/bin/slotmachine/images/q.jpg");
Image king = Toolkit
.getDefaultToolkit()
.getImage(
"D:/dev/workspaces/SlotMachine/SlotMachine/bin/slotmachine/images/k.jpg");
Image ace = Toolkit
.getDefaultToolkit()
.getImage(
"D:/dev/workspaces/SlotMachine/SlotMachine/bin/slotmachine/images/a.jpg");
Image scatter = Toolkit
.getDefaultToolkit()
.getImage(
"D:/dev/workspaces/SlotMachine/SlotMachine/bin/slotmachine/images/spirit.jpg");
frame.getContentPane().setLayout(
new BoxLayout(frame.getContentPane(), BoxLayout.X_AXIS));
// wheels
final Wheel wheel1 = new Wheel(ten, jack, queen, king, ace, scatter);
frame.getContentPane().add(wheel1);
final Wheel wheel2 = new Wheel(ten, jack, queen, king, ace, scatter);
frame.getContentPane().add(wheel2);
System.out.println(wheel2.getBounds());
final Wheel wheel3 = new Wheel(ten, jack, queen, king, ace, scatter);
frame.getContentPane().add(wheel3);
final Wheel wheel4 = new Wheel(ten, jack, queen, king, ace, scatter);
frame.getContentPane().add(wheel4);
final Wheel wheel5 = new Wheel(ten, jack, queen, king, ace, scatter);
frame.getContentPane().add(wheel5);
JButton btnSpin = new JButton("Spin");
btnSpin.addMouseListener(new MouseAdapter() {
// Spin() wird ausgelöst
public void mouseClicked(MouseEvent arg0) {
System.out.println(wheel2.getBounds());
System.out.println(wheel3.getBounds());
for (int yPos = 0; yPos < 800; yPos++) {
wheel1.spin(yPos);
wheel2.spin(yPos);
wheel3.spin(yPos);
wheel4.spin(yPos);
wheel5.spin(yPos);
}
}
});
frame.getContentPane().add(btnSpin);
}
}
Java:
package test;
import java.awt.*;
public class Wheel extends Canvas {
/**
*
*/
private static final long serialVersionUID = 1L;
private Image ten;
private Image jack;
private Image queen;
private Image king;
private Image ace;
private Image scatter;
private int x;
private int y = -200;
public Wheel(Image tenImg, Image jackImg, Image queenImg, Image kingImg,
Image aceImg, Image scatterImg) {
ten = tenImg;
jack = jackImg;
queen = queenImg;
king = kingImg;
ace = aceImg;
scatter = scatterImg;
x = this.getBounds().x + 5;
}
public void paint(Graphics g) {
if (ten != null) {
g.drawImage(ten, x, y, 220, 200, this);
}
if (jack != null) {
g.drawImage(jack,x, y + 200, 220, 200, this);
}
if (queen != null) {
g.drawImage(queen, x, y + 400, 220, 200, this);
}
if (king != null) {
g.drawImage(king, x, y + 600, 220, 200, this);
}
if (ace != null) {
g.drawImage(ace, x, y + 800 , 220, 200, this);
}
if (scatter != null) {
g.drawImage(scatter, x, y + 1000, 220, 200, this);
}
}
public void spin(int yPos) {
this.setLocation(getBounds().x, yPos);
}
Mein Problem ist, dass ich versuche das erste Image des jeweiligen Canvas Objects außerhalb des Frames zu zeichnen und es dann reinlaufen lassen möchte. Das Image außerhalb des Frames wird aber nicht gezeichnet.
Bilder befinden sich im Anhang
MfG
Fabio