Eine Frage fur Galleries ?

Status
Nicht offen für weitere Antworten.

Perffy

Mitglied
Hallo,

ich habe eine Gallerie (Java Applet) mit Fotos gemacht und ich will, dass die so aussieht:
Auf der ersten Seite gibt es nur Button "Next" und auf der letzten nur "Back". Auf den anderen gibt es die beiden Buttons, aber bei mir erscheint folgedens Problem, wenn jemand die letzte Seite erreicht, dann wird das letzte Button erloscht. Wie kann ich das beseitigen ?
Das ist meine Source-Code.

if(i==0){ // 2. Seite
add(back);
}
else if (i==5) { // letzte Seite
add(back);
remove(next);
}
 
Das ist die ganze Source-Code.
Das Wichtigste ist aber in der ActionListener.

Code:
import java.awt.Color;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class Album extends Applet implements ActionListener{
	
	private Button next = new Button("NEXT");
	private Button back = new Button("BACK");
	private Button exit = new Button("X");
	private Label titel = new Label("                      ");
	private Label comments = new Label("                       ");
    private String[] name = new String[6];
    private String[] comment = new String[6];
    private Label label = new Label("Istoriata na loshoto momche Kolovati s snimki.");
	int i = 0;
    
    public void init() {    
    setBackground(new Color(0,109,255));
    setSize(300,300);
    name[0] = ("     1999.jpg");
    name[1] = ("     2001.jpg");
    name[2] = ("     2002.jpg");
    name[3] = ("     2003.jpg");
    name[4] = ("     2004.jpg");
    name[5] = ("     2005.jpg");    
    comment[0] = ("         Gorkia nqmal e kakvo da qde i obleche.");
    comment[1] = ("Kolovati trenira za Biad da se napie bezpametno");
    comment[2] = ("Iliancho sled kato e naplqskal treniora Chuguna");
    comment[3] = ("   V Levski e nqmal daje pari da se postrije.");
    comment[4] = ("    Sled napivane v rodnia mu grad Kustendil.");
    comment[5] = ("Kolovati sled parvoto zemetresenie v Japonia.");
    
    
    setLayout(null);
    back.addActionListener(this);
    back.setSize(50,20);
    back.setLocation(0,25);
    next.addActionListener(this);
    next.setSize(50,20);
    next.setLocation(250,25);
    titel.setSize(100,20);
    titel.setLocation(110,25);
    comments.setSize(280,20);
    comments.setLocation(15,260);
    exit.setSize(20,20);
    exit.setLocation(280,0);
    exit.addActionListener(this);
    label.setBackground(Color.BLUE);
    label.setForeground(new Color(244,211,68));
    label.setFont(new Font("Serif", Font.BOLD, 13));
    label.setSize(270,15);
    label.setLocation(2,2);
    add(label);
    add(exit);
    //add(back);
    add(titel);
    add(next);
    add(comments);
    }
    
    public void paint(Graphics g) {
    g.setColor(Color.BLUE);	
    g.fillRect(0,0,280,20);	
    titel.setText(name[i]);
    Image image = getImage(getDocumentBase(), name[i]);
    g.drawImage(image,75,50,this);
    comments.setText(comment[i]);
    }
    
    public void actionPerformed(ActionEvent e) {
    	
    	if(name[i]==0){
    	add(back);	
    	}
    	else if (i==5) {
    	add(back);	
    	remove(next);	
    	}
    	if(e.getSource() == exit) {
    	System.exit(0);	
    	} 
        if(e.getSource()== next){
          i=(i+1)%name.length;
          }
        if(e.getSource()==back){
          i=i-1;
          if(i<0){
            i=(i+name.length)%name.length;
          }
        }
        repaint();	
    }
    
}

Edit Illuvatar: Codetags
 
Ich hab solch eine Gallerie mit PHP erstellt und da erstmals die Bilder gezählt. o = Bilderanzahl

Code:
$o=0;
do{
$o++;
}
while (file_exists($gal.$o.".".$end.""));
$o=$o-2;

$i = $i-1;
if ($i!=0){
echo("<a href=\"bild.php?i=".$i."&gal=".$gal."&o=".$o."\" onmouseover=\"self.status='Zurück'; return true;\" onmouseout=\"self.status=''; return true;\">Bild zurück</a> ");
};

if ($i!=$o){
$i = $i+2;

echo("<a href=\"bild.php?i=".$i."&gal=".$gal."&o=".$o."\" onmouseover=\"self.status='Vor'; return true;\" onmouseout=\"self.status=''; return true;\">Bild vor</a>");
};

Das war am mein allererstes PHP Script, deswegen etwas unordentlich und könnte man sauberer schreiben. Aber das mit Bild vor / Bild zurück klappt.
 
Hallo

if(name==0)..

hier vergleichst du einen String mit einem int . normaleweiese muss hier einen compilerfehler geben.

ich habe deine methode so geändert, dass es auf der ersten Seite nur Button "Next" gibt und auf der letzten nur "Back" gibt und Auf den anderen die beiden Buttons gibt.



Code:
public void actionPerformed(ActionEvent e) {
        // nur aktionen von der ersten , zweiten, vor letzte und letzte seiten
        // ändern die sichtbarkeit der
        // next unf back buttons
        // in anderen Seiten sind die buttons beide sichbar

        if (e.getSource() == exit) {
            System.exit(0);
        }
        if (e.getSource() == next) {

            if (i == 0) {
                //next button auf die erste seite gedrückt
                add(back);//back button sichbar machen
            }
            if (i == 4)
                //next button auf der vor letzte seite gedrückt
                remove(next);// next button unsichtbar machen

            i = (i + 1) % name.length;// i hochzaehlen bis 6
        }
        if (e.getSource() == back) {

            if (i == 1) {
                //back button auf die erste seite gedrückt
                remove(back);// back button unsichtbar machen
            }
            if (i == 5)
                //back button auf der letzte seite gedrückt
                add(next);// next button sichtbar machen

            i = (i - 1) % name.length;// i runterzaehlen bis 0
        }

        repaint();
    }
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben