0

クラスのコイントスプログラムを書いています。テキストを各グリッドの中央に配置するのに問題があります。グリッドレイアウトは3x3ですが、各グリッドのテキスト「H」または「T」は左寄せされています。グリッドを作成するためのコードは次のとおりです。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class Lab3Panel extends JPanel {

    Lab3Panel() {
        setLayout(new GridLayout(3, 3, 1, 1));

        Lab3Label[] label = new Lab3Label[9];
        label.setHorizontalTextPosition(SwingConstants.CENTER);
        label.setVerticalTextPosition(SwingConstants.CENTER);

        for (int i = 0; i < 9; i++) {
            label[i] = new Lab3Label(i);
            add(label[i]);
        }
    }
}

私が得ているエラーは次のとおりです。

Lab3Panel.java:15: error: cannot find symbol label.setHorizontalTextPosition(SwingConstants.CENTER);
                                                  ^
4

1 に答える 1

5

setHorizontalTextPosition配列オブジェクトのメソッドを呼び出していますが、そのエントリの1つでメソッドを呼び出す必要があります。

何かのようなもの:label[0].setHorizontalTextPosition

ただし、上記のステートメントをコンパイルできるようにするには、クラスがそのスーパークラスの1つからLab3Labelメソッドを定義または継承する必要があります。setHorizontalTextPosition

私はこれがあなたが必要としているものだと思います:

Lab3Label[] label = new Lab3Label[9];
for (int i = 0; i < 9; i++) {
    label[i] = new Lab3Label(i);
    label[i].setHorizontalTextPosition(SwingConstants.CENTER);
    label[i].setVerticalTextPosition(SwingConstants.CENTER);
    add(label[i]);
}
于 2013-02-27T01:08:54.730 に答える