所以我正在编写一个基于控制台的Shape Creator
,用户输入创建形状。如果用户想要创建5 Square,程序将创建一个ArrayList
并从Square类获取具有shapeId,area等的数据。
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的所有区域?
答案 0 :(得分:1)
Greatings,Egrimo。
正如您所说,您有一个Square类,它具有以下所有属性:ID
,Shape
,Area
,Full Shape
,Distance
和{ {1}}。
当你这样做时:
Properties
您想要访问System.out.println(squares.get(i));
属性,您必须这样做:
Area
。此方法必须是公开的,并且将返回该方块的区域。 getArea()
将打印您的方形区域。
修改强>
如果您不知道如何创建getArea()方法,请查看此示例:
System.out.println(squares.get(i).getArea());
祝你有个美好的一天!