Hi
Ich würde gerne ein kleines Schiffeversenken Programmieren und möchte nicht mit Einzelnen Feldern Arbeiten und möchte deshalb die Mausposition auslesen. Das funktioniert auch wunderbar, bis man auf den Button geht (Um die Positon zu zeige). Wenn man dies macht erkennt er keine Position auf dem ContentPane und wenn ich die Positon auf dem Button abfrage gibt er mir natürlich in der oberen rechten ecke des Buttons 0,0 Zurück. Kennt jemand einen Weg wie man die Position durch den Button auf dem ContentPane ermitteln kann?
Aruetiise
Code:
Ich würde gerne ein kleines Schiffeversenken Programmieren und möchte nicht mit Einzelnen Feldern Arbeiten und möchte deshalb die Mausposition auslesen. Das funktioniert auch wunderbar, bis man auf den Button geht (Um die Positon zu zeige). Wenn man dies macht erkennt er keine Position auf dem ContentPane und wenn ich die Positon auf dem Button abfrage gibt er mir natürlich in der oberen rechten ecke des Buttons 0,0 Zurück. Kennt jemand einen Weg wie man die Position durch den Button auf dem ContentPane ermitteln kann?
Aruetiise
Code:
Java:
package schiffe_versenken;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.GridLayout;
import javax.swing.JButton;
import net.miginfocom.swing.MigLayout;
import javax.swing.JToggleButton;
import java.awt.Button;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.MouseEvent;
import java.awt.Canvas;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.FormSpecs;
import com.jgoodies.forms.layout.RowSpec;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.BoxLayout;
import java.awt.CardLayout;
public class Schiffe_versenken extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Schiffe_versenken frame = new Schiffe_versenken();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Schiffe_versenken() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 720, 370);
contentPane = new JPanel();
JButton btnTest = new JButton("test");
btnTest.setBounds(100, 100, 10, 10);
contentPane.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseMoved(MouseEvent m) {
int posX;
int posY;
posX = m.getX();
posY = m.getY();
btnTest.setBounds(posX, posY, 10, 10);
System.out.println("x" + posX + "y" + posY);
}
});
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
contentPane.add(btnTest);
}
}