2016-10-30 5 views
0

私はユーザ入力で図形を作成するコンソールベースShape Creatorを作成しています。ユーザーが5スクエアを作成したい場合は、プログラムはArrayListを作成し、shapeIdを持って広場クラスからデータを取得し、面積などArrayListから列を取得

import java.util.ArrayList; 
import javax.swing.JOptionPane; 

public class ShapeMaker { 


    public ShapeMaker(){ 


     create(); 

    } 

    public void create(){ 
     //creates list of arrays within shapes. 
     ArrayList<Circle>circles=new ArrayList<Circle>(); 
     ArrayList<Square>squares=new ArrayList<Square>(); 
     ArrayList<Rectangle>rectangles=new ArrayList<Rectangle>(); 

     //this loop is dangerously infinity but I had to open the program for choices. 
     while(true){ 
      String[] choices={"Create Random Shapes","Circles","Squares","Rectangles", 
        "Print All Shapes","Print Rectangles","Print Squares", 
        "Print Circles","Exit"}; 
      String optionMenu = (String)JOptionPane.showInputDialog(
        null, 
        "Choose what you desire", 
        "Customized Dialog", 
        JOptionPane.PLAIN_MESSAGE, 
        null, 
        choices, 
        choices[0]); 


      if (optionMenu==choices[0]){ 
       //    String input4=(String)JOptionPane.showInputDialog(null,"How Many Shape ?","Question", 
       //      JOptionPane.QUESTION_MESSAGE); 
       //    int inputLength4=Integer.parseInt(input4); 
       //    for (int i=0;i<inputLength4;i++){ 
       // 
       //     circles2[i]=new Circle(); 
       //     circles.add(circles2[i]); 
       //     squares2[i]=new Square(); 
       //     squares.add(squares2[i]); 
       //     rectangles2[i]=new Rectangle(); 
       //     rectangles.add(rectangles2[i]); 
       // 
       //    } 
       //    JOptionPane.showMessageDialog(null,inputLength4+" shapes have been created successfully."); 
      } 
      else if (optionMenu==choices[1]) { 
       String input=(String)JOptionPane.showInputDialog(null,"How Many Circle ?","Question", 
         JOptionPane.QUESTION_MESSAGE); 
       int inputLength=Integer.parseInt(input); 
       Circle[]circles2=new Circle[inputLength]; 
       if (circles.isEmpty()==false){ 
        int delete=JOptionPane.showConfirmDialog(null, "There are circles in the list. Do you want to delete them?", 
          "Existing Shapes",JOptionPane.YES_NO_OPTION); 
        if (delete==JOptionPane.YES_OPTION){ 
         circles.remove(circles2); 
        } 
        else{ 
         for (int i=0;i<inputLength;i++){ 
          circles2[i]=new Circle(); 
          circles.add(circles2[i]); 
         } 
        } 

       } 
       else{ 


        for (int i=0;i<circles2.length;i++){ 
         circles2[i]=new Circle(); 
         circles.add(circles2[i]); 
        } 
        JOptionPane.showMessageDialog(null,inputLength+" circle have been created successfully."); 
       } 

      } 
      else if (optionMenu==choices[2]) { 
       String input3=(String)JOptionPane.showInputDialog(null,"How Many Squares ?","Question", 
         JOptionPane.QUESTION_MESSAGE); 
       int inputLength3=Integer.parseInt(input3); 
       Square[]squares2=new Square[inputLength3]; 
       if (squares.isEmpty()==false){ 
        int delete=JOptionPane.showConfirmDialog(null, "There are squares in the list. Do you want to delete them?", 
          "Existing Shapes",JOptionPane.YES_NO_OPTION); 
        if (delete==JOptionPane.YES_OPTION){ 
         squares.remove(squares2); 
        } 
        else{ 
         for (int i=0;i<inputLength3;i++){ 
          squares2[i]=new Square(); 
          squares.add(squares2[i]); 
         } 
        } 

       } 
       else{ 

        for (int i=0;i<inputLength3;i++){ 
         squares2[i]=new Square(); 
         squares.add(squares2[i]); 
        } 
       } 
       JOptionPane.showMessageDialog(null,inputLength3+" square have been created successfully."); 


      } 
      else if (optionMenu==choices[3]) { 
       String input2=(String)JOptionPane.showInputDialog(null,"How Many Rectangles ?","Question", 
         JOptionPane.QUESTION_MESSAGE); 
       int inputLength2=Integer.parseInt(input2); 
       Rectangle[]rectangles2=new Rectangle[inputLength2]; 
       if (rectangles.isEmpty()==false){ 
        int delete=JOptionPane.showConfirmDialog(null, "There are rectangles in the list. Do you want to delete them?", 
          "Existing Shapes",JOptionPane.YES_NO_OPTION); 
        if (delete==JOptionPane.YES_OPTION){ 
         rectangles.remove(rectangles2); 
        } 
        else{ 
         for (int i=0;i<inputLength2;i++){ 
          rectangles2[i]=new Rectangle(); 
          rectangles.add(rectangles2[i]); 
         } 
        } 

       } 
       else{ 
        for (int i=0;i<inputLength2;i++){ 
         rectangles2[i]=new Rectangle(); 
         rectangles.add(rectangles2[i]); 

        } 
        JOptionPane.showMessageDialog(null,inputLength2+" rectangle have been created successfully."); 
       } 
      } 
      else if (optionMenu==choices[4]) { 
       System.out.printf("%-5s%-13s%-10s%-13s%-10s%-15s%n", "ID","Shape", 
         "Area","Full Shape", " Distance", "Properties"); 
       System.out.println(); 
       for (int i=0;i<rectangles.size();i++){ 
        System.out.println(rectangles.get(i)); 
       } 
       for (int i=0;i<squares.size();i++){ 
        System.out.println(squares.get(i)); 
       } 
       for (int i=0;i<circles.size();i++){ 
        System.out.println(circles.get(i));     
       } 


      } 
      else if (optionMenu==choices[5]) { 
       System.out.printf("%-5s%-13s%-10s%-13s%-10s%-15s%n", "ID","Shape", 
         "Area","Full Shape", " Distance", "Properties"); 
       System.out.println(); 
       for (int i=0;i<rectangles.size();i++){ 
        System.out.println(rectangles.get(i)); 

       } 
       System.out.print("There are "+rectangles.size()+" rectangle with total area of "); 
      } 
      else if (optionMenu==choices[6]) { 
       System.out.printf("%-5s%-13s%-10s%-13s%-10s%-15s%n", "ID","Shape", 
         "Area","Full Shape", " Distance", "Properties"); 
       System.out.println(); 
       for (int i=0;i<squares.size();i++){ 
        System.out.println(squares.get(i)); 

       } 
       System.out.print("There are "+squares.size()+" square with total area of "); 

      } 
      else if (optionMenu==choices[7]) { 
       System.out.printf("%-5s%-13s%-10s%-13s%-10s%-15s%n", "ID","Shape", 
         "Area","Full Shape", " Distance", "Properties"); 
       System.out.println(); 
       for (int i=0;i<circles.size();i++){ 
        System.out.println(circles.get(i)); 

       } 
       System.out.print("There are "+circles.size()+" circle with total area of "); 
      } 
      else if(optionMenu==choices[8]) { 
       System.exit(1); 

      } 
     } 

    } 

    public static void main(String [] args){ 
     new ShapeMaker(); 
     //  System.out.println(shape); 


    } 
} 

質問は、私は、地域の行から値を取得し、総面積を計算する必要がありますこれらの形状の Output

作成されたArrayListのすべての領域を取得するにはどうすればよいですか?

+0

完全なコードを投稿できますか? elseのコンテキストを指定してください。 –

+0

すべての四角形を印刷するコードを見てください。印刷されている '領域'が表示されます。このスクリーンショットから総面積を計算できますか?私はあなたができることを賭けた。今ではコード – borowis

+0

@CarlosVázquezLosadaで完全なコードが追加されたと思います。 – Egrimo

答えて

1

Greatings、Egrimo。 IDShapeAreaFull ShapeDistanceProperties

あなたが言われたよう

は、あなたはすべての属性を持つ広場クラスを、持っています。

あなたは:

System.out.println(squares.get(i)); 

そして、あなたはArea属性にアクセスするには、あなたがしなければならない。

  1. あなたの広場クラスのメソッドgetArea()を作成します。このメソッドはpublicでなければならず、正方形の領域を返します。あなたの正方形領域を印刷します

System.out.println(squares.get(i).getArea());:あなたのSystem.out.printlnから

  • コールのgetArea()メソッドは、正方形の面積を印刷します。

    EDIT:

    あなたがのgetArea()メソッドを作成方法がわからない場合は、この例を見て:

    public class Square{ 
        int area; 
        int id; 
        // other attributes 
    
        // constructor 
    
        public int getArea(){ // This method will return your square area 
         return this.area; 
        } 
    } 
    

    は良い一日を!

  • +0

    詳細な回答ありがとうございます。私の領域メソッドはIShapeクラスから実装され、public double area(){ \t \t //矩形の面積を計算します。 \t \tリターンサイズ*サイズ; \t} – Egrimo

    関連する問題