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??
   
   
             
          
        

