this is my code :
import greenfoot.*;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.util.*;
public class MateriRukunIman extends Materi
{
private static GreenfootImage title = new GreenfootImage("kelas1.png");
private Font font = new Font("Bradley Hand ITC TT", Font.BOLD, 20);
private Font font2 = new Font("Courier New", Font.PLAIN, 17);
private GreenfootImage back, back2;
private int btnFadeA;
private int btnFadeB;
private int btnFadeC;
private int state = 0;
private static ArrayList<ArrayList<String>> info = new ArrayList<ArrayList<String>>()
{{
add(new ArrayList<String>() {{ add("Bla bla bla");
add("dsfds");
add("fsdfds");
add("dfssd");
add("fdsfds");
add("");
add("");
}});
add(new ArrayList<String>() {{ add("Bla bla bla");
add("dsfds");
add("fsdfds");
add("dfssd");
add("fdsfds");
add("");
add("");
}});
}};
public MateriRukunIman()
{
title.setTransparency(200);
back = new GreenfootImage(300, 200);
back.fill();
back.setTransparency(0);
setImage(back);
}
public void act()
{
if (getImage().getWidth() < 640)
{
double d = Math.sqrt(640 - getImage().getWidth()) / (640 - getImage().getWidth());
getImage().scale((int)(getImage().getWidth() + Math.sqrt(640 - getImage().getWidth())), (int)(getImage().getHeight() + d * (480 - getImage().getHeight())));
getImage().setTransparency((int)(getImage().getWidth() / 640d * 190));
if (getImage().getWidth() >= 640)
{
btnFadeA = getImage().getTransparency();
btnFadeB = btnFadeA;
back = new GreenfootImage(640, 480);
back.setColor(new Color(0, 0, 0, btnFadeA));
back.fillRect(0, 0, 640, 480);
back.drawImage(title, (600 - title.getWidth()) / 2, 20);
back2 = new GreenfootImage(640, 480);
back2.setColor(new Color(0, 0, 0, btnFadeA));
back2.fillRect(0, 0, 640, 480);
back2.drawImage(title, (600 - title.getWidth()) / 2, 20);
}
}
else if (getImage().getTransparency() < 175)
{
getImage().setTransparency(getImage().getTransparency() - 20);
if (getImage().getTransparency() < 20)
{
getWorld().removeObject(this);
}
}
else
{
GreenfootImage pic;
if (state == 0)
{
pic = new GreenfootImage(back);
boolean a = false;
boolean b = false;
if (myWorld.lastMouse.getX() > 250 && myWorld.lastMouse.getX() < 350 && myWorld.lastMouse.getY() > 340 && myWorld.lastMouse.getY() < 380)
a = true;
else if (myWorld.lastMouse.getX() > 230 && myWorld.lastMouse.getX() < 350 && myWorld.lastMouse.getY() > 160 && myWorld.lastMouse.getY() < 240)
b = true;
if (a)
{
if (btnFadeA > 100)
btnFadeA -= 5;
}
else if (btnFadeA < 190)
btnFadeA += 5;
if (b)
{
if (btnFadeB > 100)
btnFadeB -= 5;
}
else if (btnFadeB < 190)
btnFadeB += 5;
pic.setColor(new Color(0, 0, 0, btnFadeA));
pic.fillRect(250, 340, 100, 40);
pic.setColor(new Color(0, 0, 0, btnFadeB));
pic.fillRect(230, 200, 130, 40);
pic.setColor(Color.WHITE);
pic.setFont(font);
Graphics2D graphics = pic.getAwtImage().createGraphics();
graphics.setFont(font);
FontMetrics fm = graphics.getFontMetrics();
int width = fm.charsWidth(("Tutup").toCharArray(), 0, ("Tutup").length());
pic.drawString("Tutup", 300 - width / 2, 365);
width = fm.charsWidth(("Rukun Iman").toCharArray(), 0, ("Rukun Iman").length());
pic.drawString("Rukun Iman", 295 - width / 2, 225);
graphics.dispose();
if (Greenfoot.mousePressed(null))
{
if (a)
pic.setTransparency(170);
else if (b)
{
state = 1;
btnFadeC = 190;
}
}
}
else
{
pic = new GreenfootImage(back2);
boolean a = myWorld.lastMouse.getX() > 250 && myWorld.lastMouse.getX() < 350 && myWorld.lastMouse.getY() > 340 && myWorld.lastMouse.getY() < 380;
if (a)
{
if (btnFadeC > 100)
btnFadeC -= 5;
}
else if (btnFadeC < 190)
btnFadeC += 5;
pic.setColor(new Color(0, 0, 0, btnFadeC));
pic.fillRect(250, 340, 100, 40);
pic.setColor(Color.WHITE);
pic.setFont(font);
Graphics2D graphics = pic.getAwtImage().createGraphics();
graphics.setFont(font);
FontMetrics fm = graphics.getFontMetrics();
int width = fm.charsWidth(("Next").toCharArray(), 0, ("Next").length());
pic.drawString("Next", 300 - width / 2, 365);
pic.setFont(font2);
graphics.setFont(font2);
fm = graphics.getFontMetrics();
for (int i = 0; i < info.get(state - 1).size(); i++)
{
String s = info.get(state - 1).get(i);
width = fm.charsWidth(s.toCharArray(), 0, s.length());
pic.drawString(s, 300 - width / 2, 200 + 19 * i);
}
graphics.dispose();
if (Greenfoot.mousePressed(null))
{
if (a && ++state == info.size() + 1)
{
state = 0;
btnFadeA = 190;
btnFadeB = 190;
}
}
}
setImage(pic);
}
}
}
How change a text (in array) with image? or Inserting Images in Array??

