Hallo,
ich arbeite gerade an einem Dame-Projekt, bei dem sich die Dame Steine auf alle JPanel verschieben lassen soll.
Nun bin ich aber extremer Anfänger und extrem verzweifelt, wie ich per Drag n Drop meine Dame Spielsteine über den Bildschirm bewegen soll... Kann mir jemand Aushilfe schaffen?
hier der Code:
MfG
PS: die Dateien geben weiße und schwarze Spielsteine auf dem Spielfeld wieder.
ich arbeite gerade an einem Dame-Projekt, bei dem sich die Dame Steine auf alle JPanel verschieben lassen soll.
Nun bin ich aber extremer Anfänger und extrem verzweifelt, wie ich per Drag n Drop meine Dame Spielsteine über den Bildschirm bewegen soll... Kann mir jemand Aushilfe schaffen?
hier der Code:
Java:
import java.awt.Color;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.List;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class SpielbrettMitIdentifikation {
static public class Zeichenpanel extends JPanel
{
public void paintComponent(Graphics a)
{
super.paintComponent(a);
Graphics G2 = (Graphics)a;
G2.drawRect(00,00 ,50 , 50 );
}
}
public static void main(String[] args) {
Schachbrett ();
}
public static void Schachbrett () {
JFrame MainFrame = new JFrame();
MainFrame.setVisible(true);
MainFrame.setSize(600, 600);
MainFrame.setTitle("Dame");
MainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MainFrame.setLayout(null);
MainFrame.setLocationRelativeTo(null);
List<JLabel> labels = new ArrayList<JLabel>();
for (int i = 0; i < 12; i++) {
for (int j =0; j < 12; j++) {
int k = 0;
int h = 0;
int l = 0;
int m = 0;
if (i >= 4) {
k = 400;
h = 50;
}
if (i >= 8) {
l = 300;
m = 50;
}
JLabel weiß = new JLabel();
weiß.setIcon(new ImageIcon("F:\\\\Lukas.Hell\\\\Damespiel\\\\Hintergrund entfernt\\\\WeißerSpielstein.png"));
MainFrame.add(weiß );
weiß.setBounds(i * 100 + 100 - k - h -l -m,50 + h + m ,50,50);
labels.add(weiß);
if (j % 2 == 0) {
MainFrame.remove(weiß);
}
MainFrame.revalidate();}
}
for (int i = 0; i < 12; i++) {
for (int j =0; j < 12; j++) {
int k = 0;
int h = 0;
int l = 0;
int m = 0;
if (i >= 4 ) {
k = 400 ;
h = 50;
}
if (i >= 8 ) {
l = 500 ;
m = 50;
}
JLabel schwarz = new JLabel();
schwarz.setIcon(new ImageIcon("F:\\\\Lukas.Hell\\\\Damespiel\\\\Hintergrund entfernt\\\\schwarzerSpielstein.png"));
MainFrame.add(schwarz );
schwarz.setBounds(i * 100 + 50 -k +h -l + m , 400 - h - m ,50,50);
labels.add(schwarz);
if (j % 2 == 0) {
MainFrame.remove(schwarz);
}
MainFrame.revalidate();}
}
int size = 8;
String[][] Brett = new String[size][size];
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
Zeichenpanel Spielfeld = new Zeichenpanel();
Spielfeld.setBounds(j*50 + 50 ,i*50+50, 50, 50);
MainFrame.add(Spielfeld);
Spielfeld.setVisible(true);
if ((j % 2 == 0 || !(i % 2 == 0)) && ((i % 2 == 0 || !(j % 2 == 0)))) {
Spielfeld.setBackground(Color.white);
Brett[j][i] = "white";
System.out.println(Brett[j][i]);
}
else {
Spielfeld.setBackground(Color.DARK_GRAY);
Brett[i][j] = "black/empty";
System.out.println(Brett[i][j]);
}
}
}
MainFrame.repaint();
MainFrame.revalidate();
System.out.println(labels);
} //Schachbrett
private JLabel getLabel(List<JLabel> labels, int x, int y) {
return labels.stream().filter(label -> label.getBounds().contains(x, y) ).findFirst().orElse(null);
}
}
MfG
PS: die Dateien geben weiße und schwarze Spielsteine auf dem Spielfeld wieder.