Hey everyone, im writing a blackjack program with java swing and im having problems with setting the layout with panels and frames.
I want to apply a different layout to two different panels, add them to a frame and then display the frame, heres my code:
//Blackjack
//By Thomas Bean
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class blackjack extends JFrame {
//create icons used in toolbar
//hearts
ImageIcon two_hearts = new ImageIcon("image/51.png");
ImageIcon three_hearts = new ImageIcon("image/47.png");
ImageIcon four_hearts = new ImageIcon("image/43.png");
ImageIcon five_hearts = new ImageIcon("image/39.png");
ImageIcon six_hearts = new ImageIcon("image/35.png");
ImageIcon seven_hearts = new ImageIcon("image/31.png");
ImageIcon eight_hearts = new ImageIcon("image/27.png");
ImageIcon nine_hearts = new ImageIcon("image/23.png");
ImageIcon ten_hearts = new ImageIcon("image/19.png");
ImageIcon jack_hearts = new ImageIcon("image/15.png");
ImageIcon queen_hearts = new ImageIcon("image/11.png");
ImageIcon king_hearts = new ImageIcon("image/7.png");
ImageIcon ace_hearts = new ImageIcon("image/3.png");
//clubs
ImageIcon two_clubs = new ImageIcon("image/49.png");
ImageIcon three_clubs = new ImageIcon("image/45.png");
ImageIcon four_clubs = new ImageIcon("image/41.png");
ImageIcon five_clubs = new ImageIcon("image/37.png");
ImageIcon six_clubs = new ImageIcon("image/33.png");
ImageIcon seven_clubs = new ImageIcon("image/29.png");
ImageIcon eight_clubs = new ImageIcon("image/25.png");
ImageIcon nine_clubs = new ImageIcon("image/21.png");
ImageIcon ten_clubs = new ImageIcon("image/17.png");
ImageIcon jack_clubs = new ImageIcon("image/13.png");
ImageIcon queen_clubs = new ImageIcon("image/9.png");
ImageIcon king_clubs = new ImageIcon("image/5.png");
ImageIcon ace_clubs = new ImageIcon("image/1.png");
//spades
ImageIcon two_spades = new ImageIcon("image/50.png");
ImageIcon three_spades = new ImageIcon("image/46.png");
ImageIcon four_spades = new ImageIcon("image/42.png");
ImageIcon five_spades = new ImageIcon("image/38.png");
ImageIcon six_spades = new ImageIcon("image/34.png");
ImageIcon seven_spades = new ImageIcon("image/30.png");
ImageIcon eight_spades = new ImageIcon("image/26.png");
ImageIcon nine_spades = new ImageIcon("image/22.png");
ImageIcon ten_spades = new ImageIcon("image/18.png");
ImageIcon jack_spades = new ImageIcon("image/14.png");
ImageIcon queen_spades = new ImageIcon("image/10.png");
ImageIcon king_spades = new ImageIcon("image/6.png");
ImageIcon ace_spades = new ImageIcon("image/2.png");
//diamonds
ImageIcon two_diamonds = new ImageIcon("image/52.png");
ImageIcon three_diamonds = new ImageIcon("image/48.png");
ImageIcon four_diamonds = new ImageIcon("image/44.png");
ImageIcon five_diamonds = new ImageIcon("image/40.png");
ImageIcon six_diamonds = new ImageIcon("image/36.png");
ImageIcon seven_diamonds = new ImageIcon("image/32.png");
ImageIcon eight_diamonds = new ImageIcon("image/28.png");
ImageIcon nine_diamonds = new ImageIcon("image/24.png");
ImageIcon ten_diamonds = new ImageIcon("image/20.png");
ImageIcon jack_diamonds = new ImageIcon("image/16.png");
ImageIcon queen_diamonds = new ImageIcon("image/12.png");
ImageIcon king_diamonds = new ImageIcon("image/8.png");
ImageIcon ace_diamonds = new ImageIcon("image/4.png");
//card tops
ImageIcon cardIcon = new ImageIcon("image/b1fv.png");
ImageIcon pc_cardIcon = new ImageIcon("image/b2fv.png");
//
//create buttons
JButton cardOne = new JButton("", cardIcon);
JButton cardTwo = new JButton("", cardIcon);
JButton pc_cardOne = new JButton("", pc_cardIcon);
JButton pc_cardTwo = new JButton("", pc_cardIcon);
JButton new_game = new JButton("New Game");
//
//constructor
public blackjack() {
super("Blackjack");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout cards = new GridLayout(1, 2, 10, 10);
JPanel panel = new JPanel();
JPanel panel2 = new JPanel();
panel.setLayout(cards);
panel2.setLayout(cards);
JFrame frame = new JFrame();
panel.add(cardOne);
panel.add(cardTwo);
panel2.add(pc_cardOne);
panel2.add(pc_cardTwo);
frame.add(panel);
frame.add(panel2);
add(frame);
setVisible(true);
}
//main function
public static void main(String[] arguments) {
blackjack main = new blackjack();
}
}
This gives me these errors when run:
thomas@thomas-laptop:~/Documents/Work/Programming/Blackjack$ java blackjackException in thread "main" java.lang.IllegalArgumentException: adding a window to a container
at java.awt.Container.addImpl(Container.java:1061)
at java.awt.Container.add(Container.java:974)
at javax.swing.JFrame.addImpl(JFrame.java:562)
at java.awt.Container.add(Container.java:377)
at blackjack.<init>(blackjack.java:95)
at blackjack.main(blackjack.java:103)
Thank you for any help!