для моего начинающего класса Java мы создали автоматическую игру Tic-Tac-Toe, и теперь мы создаем графический интерфейс для его воспроизведения. Тем не менее, у меня много проблем с правильными интервалами/полями. До сих пор я только пытался получить общую структуру для графического интерфейса, а затем я собираюсь вернуться и фактически реализовать игру Tic-Tac-Toe, которую я уже сделал. Итак, далеко, у меня есть это:Смещение границы поля/поля
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class ITTTGUI extends JFrame implements ActionListener{
//butimport javax.swing.border.*;tons
private JPanel sizePanel;
private JPanel buttonPanel;
private JPanel displayPanel;
private JPanel bottomPanel;
private JTextField size;
private JButton rebuildButton;
private JButton[] buttons;
private JLabel output;
//constructor
public NumberChooser(){
setTitle("BitchFace");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//content pane
Container cp = getContentPane();
//add a panel for the size
sizePanel = new JPanel();
sizePanel.setBorder(new EmptyBorder(5, 5, 5, 5));//adds margin to panel
sizePanel.setLayout(new FlowLayout());
size = new JTextField("3",5);
sizePanel.add(new JLabel("N"));
sizePanel.add(size);
rebuildButton = new JButton("Rebuild");
rebuildButton.addActionListener(this);
sizePanel.add(rebuildButton);
//add bottom panel for output
sizePanel.add(new JButton("Player:"), BorderLayout.EAST);
sizePanel.add(new JButton("Move:"), BorderLayout.EAST);
sizePanel.add(new JButton("Winner:"), BorderLayout.EAST);
//add a panel for the numbers
buttonPanel = new JPanel();
buttonPanel.setBorder(new EmptyBorder(5, 5, 5, 5));//adds margin to panel
buildButtonsPanel();
//add bottom panel for output
JPanel bottomPanel = new JPanel();
bottomPanel.setBorder(new EmptyBorder(5, 5, 5, 5));//adds margin to panel
bottomPanel.add(new JButton("New Game"), BorderLayout.SOUTH);
bottomPanel.add(new JButton("Advise"), BorderLayout.SOUTH);
bottomPanel.add(new JButton("Quit"), BorderLayout.SOUTH);
//add panels to main pane
cp.setLayout(new BorderLayout());
cp.add(sizePanel, BorderLayout.EAST);
cp.add(buttonPanel, BorderLayout.CENTER);
cp.add(bottomPanel, BorderLayout.SOUTH);
pack();
}
//this is a helper method to rebuild the buttons panel
private void buildButtonsPanel(){
int n = 3;
try{
n = Integer.parseInt(size.getText());
}catch(Exception e){
e.printStackTrace();
}
buttonPanel.removeAll();
buttonPanel.setLayout(new GridLayout(n,n,4,4));
buttons = new JButton[n*n];
for(int i=0; i < buttons.length; i++){
buttons[i] = new JButton("*");
buttonPanel.add(buttons[i]);
buttons[i].addActionListener(this);
}
revalidate();
repaint();
pack();
}
public void actionPerformed(ActionEvent e){
Object s = e.getSource();
//check to see if the action came from the rebuild button
if(s == rebuildButton){
buildButtonsPanel();
}
//otherwise it came from the grid
}
//entry point
public static void main(String[] args){
//create the GUI
NumberChooser nc = new NumberChooser();
nc.setVisible(true);
}
}
Это не должно быть точным, как правило, одинаковым. А также нет переменной X или победителя, поскольку я ее не реализовал. Я также попытался изменить поля (5,5,5,5) на понравившиеся (1,1,1,1), но это ничего не изменило, так что меня тоже смутило.
Любая помощь в этом, или как вообще идти об этом назначении, будет оценена по достоинству.
(И это не принимая мои изображения Извините.). ссылки являются:
Проблема заключается в том, что выглядит следующим образом:
https://i1224.photobucket.com/albums/ee362/Devolutor/COPimage1_zps459f304b.png
И он должен выглядеть это:
http://i1224.photobucket.com/albums/ee362/Devolutor/COPimage2_zps8981c846.png
Поиск на странице показывает первый '?' происходит в * «Не ответ, который вы ищете?» *. Какой у Вас вопрос? –
Не забудьте изменить строку setTitle(), когда вы включите ее ... да. Я понимаю, что этот вопрос составляет 2 года. – KisnardOnline