Member 13652359 Ответов: 0

Почему мое заявление не отображается?


Я новичок, и я написал код, который создает приложение шахматного массива.

При компиляции кода ошибок нет, но как только я успешно компилирую и запускаю приложение, появляется окно приложения, но это просто пустое белое окно.

Что я уже пробовал:

import java.awt.*;
import java.awt.event.*;

public class Checkboard extends Frame implements ActionListener
{
    //declare variables
    TextField[] board = new TextField[16];
    TextField fieldStart = new TextField(5);
    TextField fieldStop = new TextField(5);
    TextField fieldStep = new TextField(5);
    int start, stop, step;
    Label LabelStop = new Label("Start");
    Label LabelStart = new Label("Stop");
    Label LabelStep = new Label("Step");
    Button goButton = new Button("Go");
    Button clearButton = new Button("Clear");
    Panel fieldPanel = new Panel();
    Panel checkerPanel = new Panel();
    Panel buttonsPanel = new Panel();
    public Checkboard()
    {
        start = 0;
        stop = 0;
        step = 0;
        this.setLayout(new BorderLayout());
        buttonsPanel.setLayout(new FlowLayout());
        for(int i = 0; i<16; i++)
        {
            board[i] =  new TextField();
            board[i].setText("" + i);
            board[i].setEditable(false);
            checkerPanel.add(board[i]);
        }
        checkerPanel.setLayout(new GridLayout(4, 4));
        fieldPanel.setLayout(new GridLayout(2, 3));
        fieldPanel.add(fieldStart);
        fieldPanel.add(fieldStop);
        fieldPanel.add(fieldStep);
        fieldPanel.add(LabelStart);
        fieldPanel.add(LabelStop);
        fieldPanel.add(LabelStep);
        buttonsPanel.add(goButton);
        buttonsPanel.add(clearButton);
        goButton.addActionListener(this);
        //add windowListener
        addWindowListener(
            new WindowAdapter()
            {
                public void windowClosing(WindowEvent e)
                {
                    System.exit(0);
                }
            }
        );
    }
    public void actionPerformed(ActionEvent e)
        {
            String arg = e.getActionCommand();
            if(arg == "Go")
            {
                start = Integer.parseInt(fieldStart.getText());
                stop = Integer.parseInt(fieldStop.getText());
                step = Integer.parseInt(fieldStep.getText());
                if (start < 0 || stop < 0 || step < 0) arg = "clear";
                for (int i=0; i<16; i++)
                    board[i].setBackground(Color.magenta);
                for (int i=start; i<=stop; i=i+step)
                    board[i].setBackground(Color.yellow);
            }
            if (arg== "Clear")
            {
                fieldStop.setText("");
                fieldStart.setText("");
                fieldStep.setText("");
                for (int i=0; i<16; i++)
                board[i].setBackground(Color.white);
            }
        }
            public static void main(String[] args)
            {
                Checkerboard f = new Checkerboard();
                f.setBounds(50, 100, 300, 400);
                f.setTitle("Checkerboard Array");
                f.setVisible(true);
            }
}

Mohibur Rashid

Это вообще компилируется? Ваши имя класса испытательных стендов и вы объявили шахматной доски в главном.

Вам также нужно добавить эту строку в свой конструктор
this.add(fieldPanel);

Member 13652359

Моя беда, я получил 2 файла с одним и тем же кодом.
Теперь я обновлю вопрос с помощью правильного кода.

0 Ответов