私はユーザ入力で図形を作成するコンソールベース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);
}
}
質問は、私は、地域の行から値を取得し、総面積を計算する必要がありますこれらの形状の
作成されたArrayListのすべての領域を取得するにはどうすればよいですか?
完全なコードを投稿できますか? elseのコンテキストを指定してください。 –
すべての四角形を印刷するコードを見てください。印刷されている '領域'が表示されます。このスクリーンショットから総面積を計算できますか?私はあなたができることを賭けた。今ではコード – borowis
@CarlosVázquezLosadaで完全なコードが追加されたと思います。 – Egrimo