0

ボタンが正しく並んでいません...何が問題なのですか?

private void loadPuzzleButtons()
{
    if (active_puzzle != null)
    {
        int devider = 5;
        int count = 0;
        JToggleButton puzzleButton[] = new JToggleButton[active_puzzle.getNumberOfPieces()];
        for(int row = 0; row < active_puzzle.getRows(); row++)
        {
            for(int column = 0; column < active_puzzle.getColumns(); column++)
            {
                puzzleButton[count] = new JToggleButton(new ImageIcon( active_puzzle.getPieces()[count].getPieceImage() ) );
                puzzleButton[count].setLocation(200 + active_puzzle.getPieceWidth() * column + devider * column,
                                                200 + active_puzzle.getPieceHeight() * row + devider * row);
                puzzleButton[count].setContentAreaFilled(false);
                puzzleButton[count].setBorderPainted(false);
                puzzleButton[count].setBorder(null);
                mainPuzzlerPanel.add(puzzleButton[count]);
                mainPuzzlerPanel.validate();
                count++;
            }
        }
        mainPuzzlerPanel.repaint();
    }
}

これが出力の写真です: http://i.imgur.com/Zdink2Q.png

ここに画像の説明を入力

申し訳ありませんが、コード全体を提供しますが、コードが大きくなるため、そうするつもりはありません...

事前に感謝します。さらに情報が必要な場合はお尋ねください!

私が問題をどのように解決したかを見たくない人のために、私はそれを理解しました。

private void loadPuzzleButtons()
{
    if (active_puzzle != null)
    {
        int count = 0;
        GridLayout puzzleLayout = new GridLayout(active_puzzle.getRows(),active_puzzle.getColumns(),3,3);
        puzzlePanel.setLayout(puzzleLayout);
        JToggleButton puzzleButton[] = new JToggleButton[active_puzzle.getNumberOfPieces()];
        for(int row = 0; row < active_puzzle.getRows(); row++)
        {
            for(int column = 0; column < active_puzzle.getColumns(); column++)
            {
                puzzleButton[count] = new JToggleButton(new ImageIcon(active_puzzle.getPieces()[count].getPieceImage()));
                puzzleButton[count].setContentAreaFilled(false);
                puzzleButton[count].setBorderPainted(false);
                puzzleButton[count].setBorder(null);
                puzzlePanel.add(puzzleButton[count]);
                puzzlePanel.validate();
                count++;
            }
        }
        puzzlePanel.repaint();
    }
}
4

2 に答える 2

1

LayoutManagerを使用してパネルを適切に塗りつぶしてみてください

于 2013-10-28T17:02:09.840 に答える