hallo,
Ich habe mich schon öfters mal darin versucht, irgendwie objektorientiert zu programmieren und jedes mal scheitert es daran, das irgendwas passiert, was ich nicht kapier ;(
Ich hab eigenlich noch gar nicht damit angefangen, was ich eigentlich tun will, aber schon bei aufbauen komm ich nicht weiter:
Im wesentlichen will ich ein Fenster mit 2 Panels(field und amaturen), im Linken will ich Knöpfe u.ä. und im Rechten grafische Sachen zeichnen.
Ausserdem hat die Oberklasse (World) einen KeyListener und wenn ich die Pfeiltasten bewege soll
sich im rechten Fenster(field) was bewegen, das hat auch prima geklappt, nur wenn ich jetzt im linken
Panel (amaturen) einen JButton hinzufüge, gehn die Keys nicht mehr(keine bewegung und kein System.out("blabla"))...?
Warum?
Ich könnte noch Stunden davor sitzen, es macht keinen Sinn, kann mir irgendwer helfen
Grüße und Danke schon im Voraus!
Ich habe mich schon öfters mal darin versucht, irgendwie objektorientiert zu programmieren und jedes mal scheitert es daran, das irgendwas passiert, was ich nicht kapier ;(
Ich hab eigenlich noch gar nicht damit angefangen, was ich eigentlich tun will, aber schon bei aufbauen komm ich nicht weiter:
Im wesentlichen will ich ein Fenster mit 2 Panels(field und amaturen), im Linken will ich Knöpfe u.ä. und im Rechten grafische Sachen zeichnen.
Ausserdem hat die Oberklasse (World) einen KeyListener und wenn ich die Pfeiltasten bewege soll
sich im rechten Fenster(field) was bewegen, das hat auch prima geklappt, nur wenn ich jetzt im linken
Panel (amaturen) einen JButton hinzufüge, gehn die Keys nicht mehr(keine bewegung und kein System.out("blabla"))...?
Warum?
Ich könnte noch Stunden davor sitzen, es macht keinen Sinn, kann mir irgendwer helfen
Java:
public abstract class AWorld implements ActionListener, KeyListener, MouseListener {
protected JFrame frame;
protected Field field;
protected Amaturen amaturen;
[...]
private void init() {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// call the method that shows the frame and initialize it
this.createAndShowGUI();
if (this.timerticks && this.timer != null)
this.timer.start();
// add listeners (key and mouse)
this.frame.addKeyListener(this);
this.field.addKeyListener(this);
//this.amaturen.addKeyListener(this);
this.frame.addMouseListener(this);
this.field.addMouseListener(this);
//this.amaturen.addMouseListener(this);
}
});
}
}
/////////////////////////////////////////////////////////////////////////////
public final class World extends AWorld {
public static void main(String args[]) {
new World();
}
/**
* This function is called by the World class to create your
* main window.
*/
@Override
protected void createAndShowGUI() {
this.frame = new JFrame("...");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(
new BoxLayout(frame.getContentPane(), BoxLayout.X_AXIS));
this.enableTicks(1000);
this.field = new Field();
this.amaturen = new Amaturen();
frame.add(this.amaturen);
frame.add(this.field);
frame.pack();
frame.setResizable(false);
frame.setVisible(true);
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
field.movePlayer(0, -10);
System.out.println("asdf");
}
if (e.getKeyCode() == KeyEvent.VK_UP) {
field.movePlayer(0, 10);
}
if (e.getKeyCode() == KeyEvent.VK_LEFT) {
field.movePlayer(-10, 0);
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
field.movePlayer(10, 0);
System.out.println("right");
}
}
}
/////////////////////////////////////////////////////////////////////////////
public class Amaturen extends JPanel //implements ActionListener
{
public ZeitIndex zeitIndex;
public JButton startStop;
public JPanel pZeit;
public JPanel pButtons;
public Amaturen ()
{
setBorder(BorderFactory.createLineBorder(Color.black));
setBackground(new Color(120, 120, 255));
this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
this.pZeit = new JPanel();
this.zeitIndex = new ZeitIndex(0);
this.pZeit.add(zeitIndex);
this.add(pZeit);
this.pButtons = new JPanel();
this.startStop = new JButton("Start/Stop");
//this.startStop.addActionListener(this);
this.pButtons.add(startStop); //<<=== HIER spinnts
this.add(pButtons);
}
}
Zuletzt bearbeitet: