Erstellen Sie ein Tic Tac Toe-Spiel. Im Moment haben die Knöpfe keinen Zweck und das Spiel sollte überhaupt nicht funktionieren. Alles, was ich versuche, ist die GUI für das Spiel einzurichten, die manchmal angezeigt wird, wenn ich es ausführe, aber die meiste Zeit nie auftaucht. Ich bin ziemlich neu in GUI für Java, so dass jede Information hilfreich wäre!GUI nicht angezeigt, Java (BlueJ)
**** EDIT: Es herausgefunden! Ich musste frame.setVisible(true)
tun, nachdem ich alle Tasten erstellt habe, schien es zu beheben.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.JOptionPane;
/**
* A class modelling a tic-tac-toe (noughts and crosses, Xs and Os) game in a very
* simple GUI window.
*
* @author Thomas Bryk
* @version December 4, 2016
*/
public class TicTacToe extends JFrame
{
private JFrame frame;
private JButton[][] buttons;
private JMenuBar menuBar;
private JMenuItem menuNew, menuQuit;
private JLabel label;
private JOptionPane pane;
/**
* Constructs a new Tic-Tac-Toe board and sets up the basic
* JFrame containing a JTextArea in a JScrollPane GUI.
*/
public TicTacToe()
{
super();
frame=new JFrame("Tic Tac Toe");
JMenu menu=new JMenu("Game");
label=new JLabel();
menuBar= new JMenuBar();
menuBar.add(menu);
menuNew= new JMenuItem("New");
menuNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.CTRL_MASK));
menuNew.getAccessibleContext().setAccessibleDescription("Creates a new game of Tic Tac Toe");
menuQuit= new JMenuItem("Quit");
menuQuit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,ActionEvent.CTRL_MASK));
menuQuit.getAccessibleContext().setAccessibleDescription("Quits the game of Tic Tac Toe");
menu.add(menuNew);
menu.add(menuQuit);
frame.setJMenuBar(menuBar);
frame.add(label);
frame=new JFrame("Tic Tac Toe");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(350,355);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
buttons=new JButton[3][3];
}
private void setUp()
{
JPanel game = new JPanel(new GridLayout(3,3));
JPanel panel = new JPanel(new BorderLayout());
frame.add(panel);
game.setVisible(true);
panel.setVisible(true);
game.setPreferredSize(new Dimension(300,300));
panel.setPreferredSize(new Dimension(325,425));
panel.add(game, BorderLayout.CENTER);
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
buttons[i][j] = new JButton();
buttons[i][j].setText("");
buttons[i][j].setVisible(true);
game.add(buttons[i][j]);
buttons[i][j].addActionListener(new ButtonListener());
}
}
}
public static void main (String[] args){
TicTacToe mainGame=new TicTacToe();
mainGame.setUp();
}
private class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent ev)
{
}
}
}
Danke für die Info! Ich habe all die Dinge geändert, die du mir gesagt hast, aber ich habe immer noch nicht herausgefunden, warum meine Knöpfe nicht auftauchen (könnte das ganze Panel sein?). Irgendwelche Gedanken? –
Ich sehe, du hast es herausgefunden. Ja, ich habe nicht bemerkt, dass dein Rahmen sichtbar ist. Im Allgemeinen setzen Sie die Sichtbarkeit als das letzte, nachdem Sie alles eingerichtet haben. Schön für dich. Anstatt den Post zu bearbeiten, fügen Sie eine neue Antwort ein. Vielleicht wird es anderen helfen. – Aaroneiros