0

次のようなタイルベースのセットアップを実現しようとしています:ゲームボード

これは私のコードが現在生成しているものです:明らかに適切なゲームボードではありません。

以下は、これを生成している現在のコード スニペットです。明確にするために、私はコンポーネント (クエスト 3、クエスト 4... などを THE GRINNING LION TAVERN に、CASTLE WATERDEEP、Advanced Choice 3... などを Intrigue Discard に) を組み合わせて、独自の単一northCentralAreaのコンポーネントにしようとしました。セットアップ内での調整が容易になることを願っています。下部にある「プレイヤーエリア」も独自のものです。southCentralAreaJPanelGroupLayoutJPanel

private void generateLayout() {
        GroupLayout layout = new GroupLayout(getContentPane());
        getContentPane().setLayout(layout);

        layout.setAutoCreateGaps(true);
        layout.setAutoCreateContainerGaps(true);

        layout.setHorizontalGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                 .addGap(100)
                 .addComponent(advancedBuildingTiles[20])
                 .addComponent(advancedBuildingTiles[12])
                 .addComponent(advancedBuildingTiles[6])
                 .addComponent(advancedBuildingTiles[14])
                 .addComponent(advancedBuildingTiles[23])
                 .addGap(100))
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                 .addGap(50)
                 .addComponent(advancedBuildingTiles[16])
                 .addComponent(advancedBuildingTiles[8])
                 .addComponent(advancedBuildingTiles[2])
                 .addComponent(advancedBuildingTiles[0])
                 .addComponent(advancedBuildingTiles[4])
                 .addComponent(advancedBuildingTiles[11])
                 .addComponent(advancedBuildingTiles[19])
                 .addGap(50))
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER)
                 .addGroup(layout.createSequentialGroup()
                      .addComponent(availableQuests[0])
                      .addComponent(availableQuests[1]))
                 .addComponent(northCentralArea)
                 .addGroup(layout.createSequentialGroup()
                      .addComponent(basicBuildingTiles[6])
                      .addComponent(advancedBuildingChoices[1])
                      .addComponent(advancedBuildingChoices[2])
                      .addComponent(basicBuildingTiles[7]))
                 .addComponent(southCentralArea)
                 .addComponent(playerArea))                 
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                 .addGap(50)
                 .addComponent(advancedBuildingTiles[18])
                 .addComponent(advancedBuildingTiles[10])
                 .addComponent(advancedBuildingTiles[5])
                 .addComponent(advancedBuildingTiles[1])
                 .addComponent(advancedBuildingTiles[3])
                 .addComponent(advancedBuildingTiles[9])
                 .addComponent(advancedBuildingTiles[17])
                 .addGap(50))
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                 .addGap(100)
                 .addComponent(advancedBuildingTiles[22])
                 .addComponent(advancedBuildingTiles[15])
                 .addComponent(advancedBuildingTiles[7])
                 .addComponent(advancedBuildingTiles[13])
                 .addComponent(advancedBuildingTiles[21])
                 .addGap(100)));

        layout.setVerticalGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                 .addGap(200)
                 .addComponent(availableQuests[0])
                 .addComponent(availableQuests[1]))
                 .addGap(200)
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                 .addGroup(layout.createSequentialGroup()
                      .addGap(50)
                      .addComponent(advancedBuildingTiles[16])
                      .addComponent(northCentralArea)
                      .addComponent(advancedBuildingTiles[18])
                      .addGap(50))  
                 .addGroup(layout.createSequentialGroup()
                      .addComponent(advancedBuildingTiles[20])
                      .addComponent(advancedBuildingTiles[8])
                      .addPreferredGap(ComponentPlacement.UNRELATED)
                      .addComponent(advancedBuildingTiles[10])
                      .addComponent(advancedBuildingTiles[22]))
                 .addGroup(layout.createSequentialGroup()
                      .addComponent(advancedBuildingTiles[12])
                      .addComponent(advancedBuildingTiles[2])
                      .addPreferredGap(ComponentPlacement.UNRELATED)
                      .addComponent(advancedBuildingTiles[5])
                      .addComponent(advancedBuildingTiles[15]))
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                 .addComponent(advancedBuildingTiles[6])
                 .addComponent(advancedBuildingTiles[0])
                 .addComponent(basicBuildingTiles[6])
                 .addComponent(advancedBuildingChoices[1])
                 .addComponent(advancedBuildingChoices[2])
                 .addComponent(basicBuildingTiles[7])
                 .addComponent(advancedBuildingTiles[1])
                 .addComponent(advancedBuildingTiles[7]))
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                 .addGroup(layout.createSequentialGroup()
                      .addComponent(advancedBuildingTiles[14])
                      .addComponent(advancedBuildingTiles[4])
                      .addComponent(southCentralArea)
                      .addComponent(advancedBuildingTiles[3])
                      .addComponent(advancedBuildingTiles[13])) 
                 .addGroup(layout.createSequentialGroup()
                      .addComponent(advancedBuildingTiles[23])
                      .addComponent(advancedBuildingTiles[11])
                      .addPreferredGap(ComponentPlacement.UNRELATED)
                      .addComponent(advancedBuildingTiles[9])
                      .addComponent(advancedBuildingTiles[21]))
                 .addGroup(layout.createSequentialGroup()
                      .addGap(50)
                      .addComponent(advancedBuildingTiles[19])
                      .addPreferredGap(ComponentPlacement.UNRELATED)
                      .addComponent(advancedBuildingTiles[17])
                      .addGap(50))
            .addGap(200)
            .addComponent(playerArea)
            .addGap(200))));
    }

明らかに、私はこれを機能させるために何が必要かを理解していません。どんな助けでも大歓迎です。別のレイアウト マネージャーに切り替えることになるとしても (これを GroupLayout を学ぶ良い機会として利用したいと考えていました)。乾杯!

4

0 に答える 0