Hej,
jag försöker att skapa fyra stycken JPanels... topPanel som skall innehålla Player.java centerPlane som skall innehålla knappar + textfält. bottonPlane som skall innehålla Dealer.java. 0 main som innehåller alla de andra 3...
Detta vill inte fungera. Kör jag med setGridLayout, så fungerar det, men grafiken som jag skall använda fungerar inte tillsammans med detta, eftersom jag måste kunna sätta en mer korrekt position.
raden som jag anvönder för de olika planen är
topPanel.add( dealer );
centerPanel.add( bankPanel );
centerPanel.add( messageBox );
centerPanel.add( button );
bottomPanel.add( player );
main.add( topPanel );
main.add( centerPanel );
main.add( bottomPanel );
top och bottom visas på vänster respektive höger sida, typ 2x2 i storlek...
koden ser ut som följer:
/************************************************************
Class: Blackjack.java
Members: Player player
Dealer dealer
Messages messageBox
Buttons button
Bank bank
Methods: main()
Denna klass presenterar gui
*************************************************************/
import java.awt.*;
import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class Blackjack
{
BlackjackListener bl;
Player player;
Dealer dealer;
Messages messageBox;
Buttons button;
Bank bankPanel;
Deck d;
/* ===============================================
Blackjack Constructor
Pre: inget
Post: Skapar BlackJack Gui
=============================================== */
Blackjack()
{
JFrame frame = new JFrame("Blackjack");
Container pane = frame.getContentPane();
// Avslutar BlackJack när fönstret stängs
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { System.exit(0); }
});
// Skapar menyn
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
fileMenu.setMnemonic('F');
JMenu helpMenu = new JMenu("Help");
helpMenu.setMnemonic('H');
menuBar.add(fileMenu);
menuBar.add(helpMenu);
frame.setJMenuBar(menuBar);
JMenuItem quit = new JMenuItem("Quit",'x');
JMenuItem newGame = new JMenuItem("New Game", 'x');
JMenuItem help = new JMenuItem("Display Rules", 'x');
help.addActionListener(new Help() );
helpMenu.add(help);
quit.addActionListener(new Quit());
// JPanel main = new JPanel();
// main.setBackground(Color.green.darker());
// main.setLayout( new GridLayout( 3, 1 ) );
JPanel main = new JPanel();
main.setBackground(Color.pink);
main.setBounds(new Rectangle(20, 11, 355, 72));
// Skapar lyssnaren
bl = new BlackjackListener();
// Laddar spelbordet
// ImageIcon startBildIcon = new ImageIcon( "images/BlackJackTable.jpg " ); // Laddar spelbordet
// JLabel startBildLabel = new JLabel( startBildIcon ); // skapar en label av grafiken
// startBildLabel.setBounds( 0, 0, 550, 400 ); // Position
// BANK GUI
JTextField bet = new JTextField("100", 5);
JTextField bank = new JTextField("5000", 10);
JLabel bankLabel = new JLabel("Bank $");
JLabel betLabel = new JLabel("Bet Amount");
JButton submit = new JButton("Submit");
submit.addActionListener( bl );
bank.setEditable(false);
// KNAPP GUI
JButton hit = new JButton("Hit");
JButton stand = new JButton("Stand");
JButton doubleDown = new JButton("Double Down");
JButton split = new JButton("Split");
JButton deal = new JButton("Deal");
hit.addActionListener( bl );
stand.addActionListener( bl );
doubleDown.addActionListener( bl );
split.addActionListener( bl );
deal.addActionListener( bl );
// Sätter alla knappar inaktiva utom "submit"
hit.setEnabled(false);
stand.setEnabled(false);
doubleDown.setEnabled(false);
split.setEnabled(false);
deal.setEnabled(false);
// MEDDELANDE arean
JTextArea message = new JTextArea(5,12);
message.setEditable(false);
Deck d = new Deck();
dealer = new Dealer(d);
JPanel topPanel = new JPanel();
topPanel.setBounds(new Rectangle(0, 0, 300, 300));
JPanel centerPanel = new JPanel();
messageBox = new Messages( message );
bankPanel = new Bank(bet, bank, bankLabel, betLabel, submit, messageBox);
button = new Buttons(hit,stand,doubleDown,split,deal);
player = new Player(d);
JPanel bottomPanel = new JPanel();
bottomPanel.setBounds(new Rectangle(0, 100, 300, 300));
// main.add( dealer );
topPanel.add( dealer );
centerPanel.add( bankPanel );
centerPanel.add( messageBox );
centerPanel.add( button );
bottomPanel.add( player );
main.add( topPanel );
main.add( centerPanel );
main.add( bottomPanel );
// main.add( player );
newGame.addActionListener(new NewGame(player, dealer, bankPanel, d, messageBox, button));
fileMenu.add(newGame);
fileMenu.add(quit);
bl.initBL( player, dealer, bankPanel, messageBox, button, d );
// pane.add( startBildLabel ); // lägger grafiken i spelpanelen
pane.add( main );
frame.pack();
frame.setVisible(true);
}
/* ===============================================
main()
Pre: inget
Post: Skapar GUI och startar spelet
=============================================== */
public static void main( String[] args )
{
JFrame.setDefaultLookAndFeelDecorated(true);
Blackjack t = new Blackjack();
}
}