Hallo,
ich programmiere als Freizeit-Projekt hin und wieder an einem Kartenspiel (Watten) und grüble gerade daran, wie man die Karten am besten darstellt.
Da man es optimalerweise zu viert spielt, bietet sich als Ausgangslage schon mal das BorderLayout an. In den einzelnen Randbereichen werden dann die Karten angezeigt. Die eigenen Karten im SOUTH-Bereich.
Ich hatte mir das so gedacht, dass die Karten in einem Panel mit FlowLayout zentriert werden und der horizontale Abstand den negativen Wert der Hälfte einer Kartenbreite hat. Die Karten werden also überlappt.
Mein erster Versuch mit JLabels und ImageIcon als Inhalt scheint mir nicht so das Wahre zu sein. Vor allem werden die Labels dann falsch überlappt. Eine Möglichkeit, bestimmte Komponenten in den Vordergrund zu bringen, fiel mir bisher nicht auf. Gibt es da eine Funktionalität?
Ein besserer Weg scheint zur Klasse BufferedImage zu führen. Dort wurde ich auf die getSubImage()-Methode aufmerksam, mit der man die entsprechende Hälfte der Karte erhält. Somit entfiele das Problem der Überlappung. Doch je mehr ich mich darüber einlese, desto verwirrter werde ich. Darüberhinaus stellt sich noch das Problem, wie man ein BufferedImage auf der GUI darstellt bzw. welche Komponente benötigt wird.
Folgendes hab ich derweil probiert:
Image img = Toolkit.getDefaultToolkit().getImage("herz\_ass.jpg");
BufferedImage bufImg = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE\_INT\_RGB);
bufImg.createGraphics().drawImage(img, 0, 0, null);
BufferedImage halfImg = bufImg.getSubimage(0, 0, bufImg.getWidth()/2, bufImg.getHeight());
// halfImg -\> GUI ??
Kann mir hier jemand weiterhelfen hinsichtlich Richtigkeit des bisherigen Codes und wie man halfImg auf die GUI bringt? Evtl. ein kleines Codebeispiel?
Viele Grüße
Andreas