Hallo zusammen,
wenn ich die X und Y Koordination von einem JButton auslesen will, um sie nachher verändert zu setzen, habe ich folgendes als Lösung gefunden:
int posP1_x= paddel1.getX(); //X-Position von Paddel1 speichern;
int posP1_y= paddel1.getY();
Das Objekt paddel1 kann ich ansprechen, finde auch die Methoden. Aber irgendwie wird immer nur 0 im int gespeichert. Woran kann das liegen?
Viele Grüße
wenn ich die X und Y Koordination von einem JButton auslesen will, um sie nachher verändert zu setzen, habe ich folgendes als Lösung gefunden:
int posP1_x= paddel1.getX(); //X-Position von Paddel1 speichern;
int posP1_y= paddel1.getY();
Das Objekt paddel1 kann ich ansprechen, finde auch die Methoden. Aber irgendwie wird immer nur 0 im int gespeichert. Woran kann das liegen?
Viele Grüße
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
/**
*
* Beschreibung
*
* @version 1.0 vom 03.02.2018
* @author
*/
public class Pong extends JFrame {
// Anfang Attribute
private JLabel hilfslabel = new JLabel();
private JButton paddel1 = new JButton();
// Ende Attribute
public Pong() {
// Frame-Initialisierung
super();
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 1200;
int frameHeight = 1000;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
setTitle("Pong");
setResizable(false);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
hilfslabel.setBounds(1088, 16, 56, 9);
hilfslabel.setText("Hilfslabel");
hilfslabel.setVisible(false);
cp.add(hilfslabel);
//Wichtig. Den Focus auf das Hilfslabel setzen
//Weil ein Keylistener ein Objekt braucht, auf das er greift
hilfslabel.requestFocus();
paddel1.setBounds(112, 184, 25, 161);
paddel1.setText("");
paddel1.setMargin(new Insets(2, 2, 2, 2));
paddel1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
paddel1_ActionPerformed(evt);
}
});
paddel1.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent evt) {
paddel1_KeyPressed(evt);
}
});
paddel1.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent evt) {
paddel1_KeyReleased(evt);
}
});
cp.add(paddel1);
// Ende Komponenten
setVisible(true);
} // end of public Pong
//Globale Variablen
boolean p1moveup=false;
boolean p1movedown=false;
int posP1_x= paddel1.getX(); //X-Position von Paddel1 speichern;
int posP1_y= paddel1.getY(); //Y-Position von Paddel 1 speichern
// Anfang Methoden
public static void main(String[] args) {
new Pong();
} // end of main
public void paddel1_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
} // end of paddel1_ActionPerformed
//Wenn Button für Paddelbewegung gedrückt wird, dann moveVariable auf true setzen
public void paddel1_KeyPressed(KeyEvent evt) {
// TODO hier Quelltext einfügen
if (evt.getKeyCode()==KeyEvent.VK_W) {
p1moveup=true;
System.out.println("W gedrückt");
System.out.println(posP1_y);
move();
} // end of if
else if(evt.getKeyCode()==KeyEvent.VK_S){
p1movedown=true;
System.out.println("S gedrückt");
move();
} // end of if-else
} // end of paddel1_KeyPressed
//Wenn Button für Paddelbewegung losgelassen wird, dann moveVariable auf false setzen
public void paddel1_KeyReleased(KeyEvent evt) {
// TODO hier Quelltext einfügen
if (evt.getKeyCode()==KeyEvent.VK_W) {
p1moveup=false;
System.out.println("W los");
} // end of if
else if(evt.getKeyCode()==KeyEvent.VK_S){
p1movedown=false;
System.out.println("S los");
} // end of if-else
} // end of paddel1_KeyReleased
//Methode, um Paddel zu bewegen
public void move(){
if (p1moveup==true) {
System.out.println("Es sollte sich nach oben bewegen");
paddel1.setBounds(posP1_x, posP1_y+1, 33, 150);
} // end of if
} // end of while
}