最終課題と順番が前後していますが、第4回課題をこちらに載せます。



正面図

$Media技術基礎の課題用ブログ





断面図

$Media技術基礎の課題用ブログ




今回私が作るものは、構造は授業の最後で扱ったものと同じなので、断面図は同じになります。
自分のアイディアで正面図のように、レイアウトを変更しました。

最後に、今まで書いたプログラムを保存してデバックします。


まず、ウィンドウが表れるようになります。

$Media技術基礎の課題用ブログ




ここに、私が今回表示させたい、水がぽちゃんとはねる写真を検索します。
英語で drop とwaterに当てはまる写真がほしいので、drop+waterと検索します。


$Media技術基礎の課題用ブログ




この状態でエンターキーを押します。
すると、このように



$Media技術基礎の課題用ブログ



水がとびはねる写真が、みずが飛び跳ねたような形に並んで表示されるようになりました。
これで完成です。


ちなみに、milk+crownで検索しても、私の目指したものになります。


↓↓


milk+crownで検索


$Media技術基礎の課題用ブログ



enterを押すと・・・


$Media技術基礎の課題用ブログ



こんな感じに表示されます。



これで完成です。
import java.awt.*;
import java.awt.image.*;
import javax.swing.*;
import java.util.*;

public class FlickrPhotoPanel extends JPanel {
ArrayList photoImgList;
FlickrPhotoPanel(){
photoImgList = new ArrayList();
}
public void setPhotoList(ArrayListflickrObjList){
for(FlickrPhoto photo : flickrObjList){
photoImgList.add(photo.getImg75());//追加。
}
} //↑setPhotoListおわり


//↓丸い円が二重に表示されるように改造する
public void paint(Graphics g){
int width = this.getWidth();
int height = this.getHeight();
int radius = width < height ? width/4-50 : height/4-50;
int radius2 = width < height ? width/2-50 : height/2-50;
g.setColor(getBackground());
g.fillRect(0, 0, width, height);
int photoNum = photoImgList.size();
if(0 < photoNum){
double angle = 2.0*Math.PI/photoNum;
for(int i=0; i int x = (int)(width/2 + radius*Math.cos(angle*i));
int y = (int)(height/2 + radius*Math.sin(angle*i));
g.drawImage(photoImgList.get(i), x-74/2, y-74/2,
null);
}

if(0 < photoNum){
for(int i=0; i int x = (int)(width/2 + radius2*Math.cos(angle*i));
int y = (int)(height/2 + radius2*Math.sin(angle*i));
g.drawImage(photoImgList.get(i), x-74/2, y-74/2,
null);
}
}
}
}
}