Hallo,
ich hab mal eine Frage: Und zwar habe ich im folgendem Code das Problem, dass ich, wenn ich von einer Klasse mit den drei Oben genannten Interfaces auf public Variablen in einer anderen Klasse zugreifen will, ich diese immer static setzen muss. Das führt jedoch meistens zu irgendwelchen anderen Problemen. Darum meine Frage: Warum muss dabei alles static?
Hier der Code:
Wäre nett, wenn jemand dazu eine Erklärung geben könnte. Dankeschön.
ich hab mal eine Frage: Und zwar habe ich im folgendem Code das Problem, dass ich, wenn ich von einer Klasse mit den drei Oben genannten Interfaces auf public Variablen in einer anderen Klasse zugreifen will, ich diese immer static setzen muss. Das führt jedoch meistens zu irgendwelchen anderen Problemen. Darum meine Frage: Warum muss dabei alles static?
Hier der Code:
Java:
import javax.swing.*;
public class JumpnRun extends JApplet {
private static final long serialVersionUID = 1L;
public Screen screen; //müsste static, sonst kann ich von der Mouse Klasse nicht darauf zugreifen
public void init(){
screen = new Screen(this);
add(screen);
}
public void start(){
screen.running = true;
}
public void stop(){
screen.running = false;
}
}
Java:
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Screen extends JPanel implements ActionListener,Runnable {
/**
*
*/
private static final long serialVersionUID = 1L;
public int x,y;
public Thread t = new Thread(this);
public Character c = new Character(40,40,32,32);
public boolean running = true;
public Screen(JumpnRun frame){
x = frame.getSize().width;
y = frame.getSize().height;
t.start();
this.addMouseListener(new Mouse());
this.addMouseMotionListener(new Mouse());
this.addKeyListener(new Mouse());
}
public void actionPerformed(ActionEvent e) {
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.fillRect(0, 0, x, y);
c.draw(g);
}
public void run() {
while(true){
if(running){
repaint();
}else{
}
}
}
}
Java:
import java.awt.event.*;
public class Mouse implements MouseListener,MouseMotionListener,KeyListener{
public void mouseDragged(MouseEvent e) {
}
public void mouseMoved(MouseEvent e) { //hier drin wollte ich auf screen in Klasse JumpnRun zugreifen..
e.getX();
e.getY();
}
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
}
Java:
import java.awt.*;
import javax.swing.*;
public class Character extends Rectangle {
private static final long serialVersionUID = 1L;
private Image img = new ImageIcon("C://Users//Marius//Pictures/Character1.png").getImage();
public Character(int x, int y, int width,int height){
setBounds(x,y,width,height);
}
public void draw(Graphics g){
g.drawImage(img, x, y, width,height,null);
}
}
Wäre nett, wenn jemand dazu eine Erklärung geben könnte. Dankeschön.