Java 循环复制图片

Java 循环复制图片,java,arrays,image,Java,Arrays,Image,我有六张照片,我需要把它们复制到一个足够大的窗口,这样它们就不会重叠,也不会留下多余的空间。我正处于需要编程showOff()的步骤。我的任务是实例化EditablePicture的操作是 EditablePicture bigshowPict = new EditablePicture(??,??); 我需要一个循环,将数组中的图片逐个复制到可编辑的图片中 bigShowPict.copyIn(??,??,this.pictArray[??]); 其中循环计算一个或两个??,??找出复制图

我有六张照片,我需要把它们复制到一个足够大的窗口,这样它们就不会重叠,也不会留下多余的空间。我正处于需要编程showOff()的步骤。我的任务是实例化EditablePicture的操作是

EditablePicture bigshowPict = new EditablePicture(??,??);
我需要一个循环,将数组中的图片逐个复制到可编辑的图片中

bigShowPict.copyIn(??,??,this.pictArray[??]);
其中循环计算一个或两个??,??找出复制图片的位置。EditablePicture类和bigShowPict方法是预定义的,不必更改。到目前为止,我所有的代码都是

House.java

public class House
{
  String owner;
  public final static int CAPACITY = 6;
  Picture[ ] pictArray = new Picture[6];

  public House(String pString)
  {
    this.owner = pString;
  }
  public String toString()
  {
    return("The House owned by " + this.owner);
  }
  public void acquire( int i, Picture pRef )
  {
    this.pictArray[i] = pRef;
  }
  public void printPictures()
  {
    for (int i=0; i < this.pictArray.length;i++)
    {
      System.out.print("The Picture in position " + i + " is ");
      System.out.println( this.pictArray[ i ]);
    }
  }
  public void swap( int positionA, int positionB )
  {
    System.out.println("NOTHING DONE.  THIS IS JUST A swap's STUB");
  }
  public void showOff()
  {
    int sum = 0;
    for (int i=0; i<7;i++)
    {
      sum = sum + this.pictArray[i].getWidth();
     int resultHeight=1000;
    int resultWidth = sum;
      bigShowPict.copyIn(resultWidth,resultHeight,this.pictArray[i]);
      EditablePicture bigShowPict = new EditablePicture(resultWidth,resultHeight);
      bigShowPict.show();
    }
  }
}
公共类房屋
{
字符串所有者;
公共最终静态int容量=6;
Picture[]pictArray=新图片[6];
酒店(电话线)
{
this.owner=pString;
}
公共字符串toString()
{
归还(“由”+该业主拥有的房屋);
}
公共无效获取(int i,图片优先)
{
this.pictary[i]=pRef;
}
公共图片()
{
for(int i=0;ifor(int i=0;iOk-你发布了你的作业和一些代码。你的问题是什么?我不明白我在showOff()中做错了什么。我让它编译并运行,但它会打开几个窗口,随着它添加sum+getWidth()而逐渐变大
import java.util.Scanner;
public class Test
{
  public static void main(String[] a)
  {
    House myHouse;
    myHouse = new House("Justin Chaisetseree");
    Scanner sc = new Scanner(System.in);
    FileChooser.pickMediaPath();
    for( int i = 0; i < 6; i++)
    {
      myHouse.acquire(i,new Picture(FileChooser.pickAFile()));
    }
    myHouse.printPictures();
    myHouse.showOff();
    Boolean done = false;
    while( ! done )
    {
      System.out.println("Which two do you want to swap?");
      System.out.print("Type in two numbers from 0 to ");
      System.out.print( 5 );
      System.out.println(" or two -1s to stop.");
      int userInput1 = sc.nextInt();
      int userInput2 = sc.nextInt();
      if( userInput1 < 0 || userInput2 < 0)
      {
        done = true;
      }
      else
      {
        myHouse.swap( userInput1, userInput2 );
      }
    }
    myHouse.showOff();      
  }
}