Avatar billede assembler Nybegynder
02. august 2002 - 12:22 Der er 8 kommentarer og
1 løsning

Baggrunds billede i awt Gui ??

Har siddet og fnidret med java i et ½års tid nu, og min lærebog (JaveGently) er kanon til at fortælle om hvordan man henter billeder ind i applets, Har prøvet at se på api'erne på sun.com, men finder sub klasserne, og ingen deciderede syntax eksempler.

Jeg vil blot gerne vide hvordan man lægger et baggrunds billede på en Gui i awt?
Avatar billede assembler Nybegynder
02. august 2002 - 12:32 #1
Gui'en er en del af en applikation selvfølgelig ;-)
Avatar billede magoo20000 Nybegynder
02. august 2002 - 20:26 #2
Image mainimg = Toolkit.getDefaultToolkit().getImage("forside.gif");
Icon mainico = new ImageIcon(mainimg);
JLable main = new JLabel(mainico);//billede lægges ned i et label

JPanel black = new JPanel();
XYLayout layout = new XYLayout();
black.setLayout(layout);
black.setBackground(Color.black);//baggrund = sort
Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();
black.add(main, new XYConstraints(0, 0, scr.width, (scr.height-55)));
getContentPane().add(black, new XYConstraints(0, 55, scr.width, (scr.height-55)));
   
Billedet placeres simpelthen i et JLable(eller Label) og så skulle det spille!

Eksemplet er godtnok med Swing, men bare fjern J'et(f.eks. bliver JPanel til Panel), så arbejder du med AWT.
Avatar billede assembler Nybegynder
03. august 2002 - 14:14 #3
Desværre.......... det lader ikke til at spille helt så let.
Kan sagtens lave et panel, men når det kommer til Icon og de der XY(); layouts, brokker min compiler sig i stor stil............
(Virker ikke =()
import java.io.*; import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
class v1Beta extends Frame
{    Button b1;
    Button b2;
    v1Beta()
    {setLayout(new FlowLayout(FlowLayout.CENTER, 30, 25));
    setForeground(Color.blue);
    setBackground(Color.yellow);
    Image mainimg = Toolkit.getDefaultToolkit().getImage("forside.gif");
    Icon mainico = new ImageIcon(mainimg);
    Label main = new Label(mainico);//billede lægges ned i et label
    Panel black = new Panel();
    XYLayout layout = new XYLayout();
    black.setLayout(layout);
    black.setBackground(Color.black);//baggrund = sort
    Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();
    black.add(main, new XYConstraints(0, 0, scr.width, (scr.height-55)));
    getContentPane().add(black, new XYConstraints(0, 55, scr.width, (scr.height-55)));
    add(black);
    setVisible(true);
    }
}

(Virker)uden at virke ;-)

import java.io.*; import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
class v1Beta extends Frame
{    Button b1;
    Button b2;
    v1Beta()
    {setLayout(new FlowLayout(FlowLayout.CENTER, 30, 25));
    setForeground(Color.blue);
    setBackground(Color.yellow);
    Image mainimg = Toolkit.getDefaultToolkit().getImage("forside.gif");

    //Label main = new Label(mainimg);//billede lægges ned i et label
    Panel black = new Panel();
    Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();
    setVisible(true);
    }
}
Kan dog ´stadig ikke få noget baggrundsbillede på =(
Avatar billede magoo20000 Nybegynder
03. august 2002 - 18:11 #4
Ok, jeg burde have nævnt, at XYLayout ikke er standard i SDK'en fra SUN. Den er udviklet af Borland.

Dette virker med Swing:

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


class v1Beta extends JFrame
{   
    Button b1;
    Button b2;
    Container c = getContentPane();
   
    v1Beta(){
   
    setBackground(Color.yellow);
    Image mainimg = Toolkit.getDefaultToolkit().getImage("atom.gif");
    Icon mainico = new ImageIcon(mainimg);
    JLabel main = new JLabel(mainico);//billede lægges ned i et label
    Panel black = new Panel();
    Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();
    black.setLayout(new FlowLayout(FlowLayout.CENTER, 30, 25));
    black.add(main);
    c.add(black);
    setVisible(true);
    }
   
    public static void main(String a[]){
        new v1Beta();
    }
}

Jeg ser lige på AWT-delen!
Avatar billede magoo20000 Nybegynder
04. august 2002 - 18:07 #5
Dette skulle virke:

import java.awt.*;
import java.applet.Applet;

public class ImageDisplayer extends Applet {
    Image image;

    public void init() {
        image = getImage(getCodeBase(), "atom.gif");
    }

    public void paint(Graphics g) {
        g.drawImage(image, 0, 0, this);
        g.drawImage(image, 90, 0, 300, 62, this);
    }
}

Hvorfor vil du kun bruge AWT?
Avatar billede assembler Nybegynder
05. august 2002 - 00:52 #6
Dvs der er ingen mulighed for at vise baggrunds billeder i awt aplikationer, men kun applets?

Mest på grund af runtime, men ved godt at swing giver et langt bedre resultat........
Så er der en masse gui'er der skal laves om =(
Avatar billede assembler Nybegynder
06. august 2002 - 12:27 #7
Du får dine point som tak for det hæderlige forsøg =)
Avatar billede mfj1 Nybegynder
06. august 2002 - 13:42 #8
Tak tak! I øvrigt er der en turtorial på java.sun.com omk. AWT
Avatar billede mfj1 Nybegynder
06. august 2002 - 13:43 #9
kommentar for magoo20000
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