Avatar billede tendal Nybegynder
09. november 2004 - 09:15 Der er 12 kommentarer og
1 løsning

jpeg billede i gui

Hej
Jeg skal til at i gang med at lave en GUI med Jpeg billeder, men ved ikke helt hvor jeg skal starte. Det skal fungere sådan at der fra start vises et billede og når man trykker på en knap skifter billedet. Har kigget lidt på http://eksperten.dk/spm/393305, men jeg er nødt til at ha lidt mere hjælp end det der står der. Hvis nogen kunne hjælpe med et godt eksempel eller henvisning til et godt eksempel ville det bare være super :o)
Avatar billede kalp Novice
09. november 2004 - 09:35 #1
Det ganske simpelt...
Selv om du ny må jeg gå ud fra du ved hvordan man sætte du knapper ind på din form!

Så gør det...

i din frame kode finder du følgende punkt

private void jbInit() throws Exception
inde i mellem dens {}'er skriver du

jButton2.setIcon(billede1.jpeg)

dobbelt klik på din første knap og skriv følgende

jButton2.setIcon(billede2.jpg);




husk at billede1 og billede2 skal være i samme folder som dine filer.
Avatar billede kalp Novice
09. november 2004 - 09:36 #2
glemte at skrive at du skal sætte 2 knapper ind på din frame
Avatar billede mikkelbm Nybegynder
09. november 2004 - 09:37 #3
Hmmm, Kalp...

Jeg synes ikke det fremgår af spørgsmålet at tendal bruger JBuilder-GUIBuilder som vist er den du henviser til. Men det er måske bare mig der overser noget!?
Avatar billede kalp Novice
09. november 2004 - 09:43 #4
mikkelbm...

Det er du egentlig ret i...
men jeg snakkede forresten om Jdev.
Avatar billede mikkelbm Nybegynder
09. november 2004 - 09:44 #5
Okay :)

JBuilder har bare samme måde at lave sin init-metode på...
Avatar billede mikkelbm Nybegynder
09. november 2004 - 09:46 #6
Følgende eksempel er testet og virker:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test extends JFrame
{   
    private ImageIcon[] pics;
    private int currentPic = 0;
   
    private JButton button = new JButton("Skift");
   
    private JLabel picLabel = new JLabel();
   
    public Test()
    {
        setSize(400, 400);
       
        pics = new ImageIcon[3];
        pics[0] = new ImageIcon("Billede 001.jpg");
        pics[1] = new ImageIcon("Billede 002.jpg");
        pics[2] = new ImageIcon("Billede 003.jpg");
       
        button.addActionListener(new ActionListener()
        {
            public void actionPerformed (ActionEvent e)
            {
                changePic();   
            }
        });
       
        getContentPane().add(picLabel, BorderLayout.CENTER);
        getContentPane().add(button, BorderLayout.SOUTH);
    }
   
    private void changePic()
    {
        int pic = currentPic % 3;
        picLabel.setIcon(pics[pic]);
        currentPic++;
    }
   
    public static void main(String[] args)
    {
        new Test().setVisible(true);
    }

}
Avatar billede kalp Novice
09. november 2004 - 09:47 #7
men ellers skal jButton2.setIcon(billede1.jpeg) egentlig bare stå et sted hvor den bliver kørt uden man skal trykke eller gøre noget.
Avatar billede mikkelbm Nybegynder
09. november 2004 - 09:49 #8
Og har du flere billeder, er det bare at øge størrelsen på arrayet.
Avatar billede mikkelbm Nybegynder
09. november 2004 - 09:50 #9
Og ændre denne linje:
int pic = currentPic % 3;

til :
int pic = currentPic % pics.length;
Avatar billede tendal Nybegynder
09. november 2004 - 10:00 #10
Hej mikkelbm - det ser hammer godt ud, du får mine point, men jeg vil ikke love at jeg ikke har flere spørgsmål ;o) hvis det er i orden. Nu vil jeg først lige prøve at lege lidt med det her og vender så tilbage hvis der opstår problemmer.
Avatar billede mikkelbm Nybegynder
09. november 2004 - 10:12 #11
Du spørger bare.

Jeg er dog først tilbage ved computeren iaften.
Avatar billede tendal Nybegynder
09. november 2004 - 21:58 #12
Ved du evt. om man kan lægge "gennemsigtige" knapper henover et billede ligesom i "HTML"? Sådan at man kan trykke forskellige steder på et billeder for at skifte et andet billede?
Avatar billede mikkelbm Nybegynder
09. november 2004 - 22:12 #13
Det tror jeg ikke umiddelbart kan lade sig gøre ligeså nemt som i HTML.

Du kan selvfølgelig overskrive paint-metoden, og selv tegne dine knapper. Og så adde en MouseListener til dit panel/label.

Jeg kender ikke lige nogle genveje til det - desværre.


En JButton har godt nok en metode: button.setOpaque(true/false)

men så vidt jeg har kunnet læse mig til er den afhængig af den Look & Feel som man kører, så det vil ikke virke i alle tilfælde.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester