Я только что начал Java неделю назад и закончил свою первую программу для блэкджека. Я хочу улучшить его, используя Java swing (ImageIcon), чтобы каждый раз, когда я рисую карту, скажем, туз, на самом деле он отображает туз как изображение на экране или мою текущую руку. Я написал эту программу, которая отображает карты я хочу:Java blackjack swing gui ImageIcon
import java.awt.FlowLayout;
import javax.swing.*;
public class TenCards extends JFrame {
public TenCards() {
ImageIcon[] images = new ImageIcon[10];
// Saved the card images as 1,2,3...10.gif in my package
// looped them into the images list
for (int i = 1; i < images.length; i++) {
images[i] = new ImageIcon((getClass().getResource(i + ".gif")));
// testing by displaying 7,8 and 9 cards
}
setLayout(new FlowLayout(1, 1, 1));
add(new JLabel(images[7]));
add(new JLabel(images[8]));
add(new JLabel(images[9]));
}
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame = new TenCards();
frame.setTitle("Testing!");
frame.pack();
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Теперь мой вопрос, учитывая у меня есть класс блэкджек или программу в другом файле, как я объединить оба класса, так что я могу использовать все эти изображения в моей программе для блэкджека? Я пытался копировать наклеивая мою программу TenCards в блэкджек один без толку :(Если кто-нибудь может одолжить мне руку или указать меня к следующему шагу, я очень ценю это.
EDIT I теперь включены мою программу блэкджек и удалил другой, потому что StackOverflow не будет принимать оба вместе взятые, потому что было слишком много кода.
import java.util.ArrayList;
import java.util.Scanner;
import javax.swing.JLabel;
public class myblackjack {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
ArrayList<Integer> player = new ArrayList<Integer>();
ArrayList<Integer> dealer = new ArrayList<Integer>();
ArrayList<Integer> cards = new ArrayList<Integer>();
// Ace is 1 as per Amos' instructions
for (int i =1; i <= 10; i++){
cards.add(i);}
// The 3 face cards representing 10
for (int z = 0; z <= 2; z++){
cards.add(10);}
player.add(cards.get((int) (Math.random()*12)));
player.add(cards.get((int) (Math.random()*12)));
dealer.add(cards.get((int) (Math.random()*12)));
dealer.add(cards.get((int) (Math.random()*12)));
System.out.println("Your cards: "+player);
boolean moreplayer = true, morecomputer = true;
System.out.println("Hit 0 to stop, 1 for another card");
int s1 = sc.nextInt();
while (moreplayer || morecomputer){
int dealersum = 0, playersum = 0 ;
for (int p = 0; p<dealer.size(); p++){
dealersum = dealersum + dealer.get(p);
} if (dealersum<15){
morecomputer = true;
dealer.add(cards.get((int) (Math.random()*12)));
dealersum = dealersum + dealer.get(2);
}else{ morecomputer = false;
}if (s1 == 1){
moreplayer = true;
player.add(cards.get((int) (Math.random()*12)));
for (int b = 0; b<player.size(); b++){
playersum = playersum + player.get(b);
} System.out.println("Your cards: "+player);
System.out.println("Hit 0 to stop, 1 for another card");
s1 = sc.nextInt();
}else if (s1 == 0){
moreplayer = false;
for (int b = 0; b<player.size(); b++){
playersum = playersum + player.get(b);
}}if (playersum>21 && (moreplayer || morecomputer)){
moreplayer = false; morecomputer = false;
System.out.println(dealer + "dealer");
System.out.println("You've gone bust player, computer wins!");
}if (dealersum>21 && (moreplayer || morecomputer)){
moreplayer = false; morecomputer = false;
System.out.println(dealer + "dealer");
System.out.println(player + "player");
System.out.println("Computer has gone bust, player wins!");
}if (playersum>dealersum && (!morecomputer && !moreplayer) && (dealersum<=21 && playersum <=21)){
System.out.println("Player wins!");
System.out.println(dealer + "dealer");
moreplayer = false; morecomputer = false;
}if (dealersum>playersum && (!morecomputer && !moreplayer) && (dealersum<=21 && playersum <=21)){
System.out.println("Dealer wins");
System.out.println(dealer + "dealer");
moreplayer = false; morecomputer = false;
} if ((dealersum == playersum) && (!morecomputer && !moreplayer) && (dealersum<=21 && playersum <=21)){
System.out.println("TIE!");
System.out.println(dealer + "dealer");
moreplayer = false; morecomputer = false;
}
sc.close() ;
}
}
}/** I didn't consider suits, ace is value 1 and all 3 face cards are worth 10 points */
приветы, M
До тех пор, пока ваш класс tencards находится в том же пакете, что и ваш логический класс и другой сортированный класс, вы должны легко их комбинировать. Скорее всего, так как я бы предположил, что у вас есть только пара классов, у вас, вероятно, есть только пакет defualt ... при этом вам нужно просто создать экземпляр вашего изображения, когда будет нарисована ваша новая карта. –
Спасибо BigT! – spacesick
Какова будет команда создания экземпляра для изображения? – spacesick