Ich versuche, ein TicTacToe Spiel 'zu erstellen. Nur eine Karte ist vom Benutzer spielbar, und wenn der Benutzer auf eine Zelle klickt, wird die Zelle mit einem X/O gefüllt, und dieselbe Zelle (auf einer zufälligen Stelle der zweiten Karte) wird mit einem X/O gefüllt. Der Benutzer kann auf beiden Brettern gewinnen. Das Problem tritt auf, wenn man versucht, die Boards zu bauen und sie in ihren jeweiligen JPanels anzeigen zu lassen. Ich möchte idealerweise, dass der JFrame Vollbildmodus ist, also setze ich Size (2000,2000). Wenn ich das Programm starte, erscheint der JFrame und beide TicTacToe-Gitter werden zusammengequetscht. Der untere Teil, wo es angeblich Status-Updates des Spiels (X an der Reihe, X gewann das Spiel, usw.) zu sein scheint auch zerquetscht werden:GridLayout Squished zusammen in JFrame/JPanel
So entschied ich mich Pack zu versuchen() anstelle von setSize(). Eine gute Nachricht ist, dass die Spielbretter auftauchten unsquished aber die JFrame war wahnsinnig klein:
Im Idealfall ist das, was ich die JFrame aussehen soll:
Im Idealfall möchte ich der JFrame soll Vollbild sein, aber mir würde es gut gehen mit einer Lösung, die den JFrame größer macht, wenn ich pack() anstelle von setSize() benutze.
Wie entmarke ich entweder die Raster im Vollbild JFrame oder wie mache ich pack() größer?
Code of Verfahren, in dem ich das bauen JFrame:
public Attempt(){
JFrame frame = new JFrame("Shadow Tic Tac Toe Game");
frame.setSize(2000,2000);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
// Adds panel1 which will hold the first TicTacToe game.
panel1.setLayout(new GridLayout(3,3,0,0));
for(int d = 0; d < 3; d++){
for(int c = 0; c < 3; c++){
panel1.add(cell[d][c] = new Cell());
}
}
// Builds Panel2 which will hold the second TicTacToe game
panel2.setLayout(new GridLayout(3,3,0,0));
row = rand.nextInt(3);
column = rand.nextInt(3);
for(int n = 0; n < 3; n++){
panel2.add(cell[row][column] = new Cell());
}
// Adds Panel1 to the JFrame
frame.add(panel1, BorderLayout.EAST);
// Adds Panel2 to the JFrame
frame.add(panel2, BorderLayout.WEST);
// Updates the status of the game here (win/lose/draw/whose turn it is)
frame.add(jlblStatus, BorderLayout.SOUTH);
// Calls method Chose() which allows the player to chose which token they will play as
Chose();
frame.setVisible(true);
}