質問

このコードが機能していた先日。いくつかのことを変更して再実行しましたが、意図したとおりに動作しなくなりました。明らかに、私が変更したものが動作を変更しましたが、私は戻ってそれらの変更をすべて元に戻しましたが、それでも動作しません。その情報のビットを無視して(開始するには)、なぜこのコードはJPanel内にJLabelの15x15グリッドを配置しないのですか?

gameBoard.setLayout(new FlowLayout());

for (int i = 0; i < 15; i++)
{
    for (int j = 0; j < 15; j++)
    {
        JLabel tile = new JLabel("");                       
     tile.setHorizontalAlignment(SwingConstants.CENTER);
        tile.setPreferredSize(new Dimension(27, 27));
        tile.setBorder(new EtchedBorder());
        tile.setEnabled(false);

        gameBoard.add(tile);
    }
}

gameBoardは、NetBeansのGUIビルダーで定義されたJPanelです。推奨サイズ、最大サイズ(推奨と同じ)があります。水平/垂直のサイズ変更可能なオプションは無効になっていますが、このコードを実行すると、すべてのボタンが壊れることなく水平方向に連続して伸びます。

正しく理解すれば、FlowLayoutは要素を含む要素の最後に到達したときに要素をラップすることになっています。これは今日前に起こっていましたが、なぜこの振る舞いが止まったのか分かりませんか?

役に立ちましたか?

解決 4

わかりました。どうやらコード内でpreferredSizeを設定する必要があったようです。 Netbeansのプロパティウィンドウで設定するだけでは不十分です。奇妙な。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top