0

私はこれが初めてで、何をすべきかわからず、完全に立ち往生しています!

アルメニアの旗を作成しましたが、行は簡単でした.

コードを変更して水平 (または赤、白、緑のイタリア国旗のようなもの) にしたい場合、どのようにコーディングすればよいでしょうか?

これが私がアルメニアの旗を作った方法です:

 import java.awt.Color;

 /**
 * A program to draw an Armenian flag.
 * 
 * @author O
 * @version 5
 */
 public class ArmenianFlag
 {
 public static void main(String[] args)
 {
     // the flag has three bands of colour
    // and the aspect ratio is 1:2 (it's twice as wide as it is high)
    int WIDTH = 6;
    int HEIGHT = 3;
    int CELL_SIZE= 60;

    // Mix up the right colours
    Color RED = Color.RED;
    Color BLUE = new Color(0, 0, 170);
    Color ORANGE = new Color(255, 153, 0);

    // Create the window to display in
    FlagFrame frame = new FlagFrame("Armenia", HEIGHT, WIDTH, CELL_SIZE);

    // OK - now we are ready to paint the colours in the right places
    for(int row = 0; row < HEIGHT; row++)
    {
        for(int col = 0; col < WIDTH; col++)
        {
            switch(row)
            {
                case 0:
                    frame.selectColor(row, col, RED);
                    break;
                case 1:
                    frame.selectColor(row, col, BLUE);
                    break;
                case 2:
                    frame.selectColor(row, col, ORANGE);
                    break;
            }
        }
      }
    }
   }
4

2 に答える 2

0

私があなただったら、あなたの構造を少し変更するので、あなたのクラスは次のようになります。

public class ArmenianFlag
{
    public FlagFrame getFlag()
    {
        // ... Do logic.
        return frame;
    }
}

次に、次のように別のフラグを作成できます。

public class ItalianFlag
{
    // Once again, so logic. Bare in mind this time, you want three columns and 1 row.
    int width = 3;
    int height = 3;

   public FlagFrame getFlag() {

        for(int col = 0; col < width; col ++)
        {
            // Cycle through each column.
            for(int row = 0; row < height; row ++)
            {
                // For eaach row in the column, set the appropriate color.

                // Notice the important part is you're changing the color of each column!!
            }
        }
    }
}

そして、そこにいる間に、スーパークラスを作成することもできます。

public abstract class Flag
{
      public FlagFrame getFlag();
}

次に、クラスのヘッダーは次のようになります。

public class ItalianFlag extends Flag

public class ArmenianFlag extends Flag

高さや幅などの共通の詳細をFlagクラスに移動できます。

public abstract class Flag
{
      private int height;
      private int width;

      public FlagFrame getFlag();
}
于 2013-08-29T15:09:56.160 に答える