Toon posts:

[java] Knop met een afbeelding

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik probeer een applet te maken., met (op dit moment nog) drie knoppen.
Het probleem is dat ik er niet echt achter kom hoe ik de afbeelding op de knop krijg.

Ik kan de afbeelding getoond krijgen gewoon plain erin.
Maar zodra ik het direct aangeef als achtergrond voor de knop krijg ik een melding van
cannot find symbol - variabel afbeelding1
Nu zal ik allicht het fout declareren. Maar ik heb mijn hoofd gek gezocht maar kan het echt niet vinden.

Alvast bedankt voor het ernaar kijken want de hele morgen googlen heeft me weinig opgeleverd.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.awt.*;
import java.applet.*;
import javax.swing.ImageIcon;

public class ingmar extends Applet
{
    Button object1, object2, object3;
    TextField tekstvak;
    Font f;
    Image afbeelding1;
    
    public void init()
    {
        setLayout( null );
        
        afbeelding1 = getImage( getDocumentBase(), "knop1.gif" );
     
        object1 = new Button( "knop1" );
        object2 = new Button( "knop2" );
        object3 = new Button( "knop3" );
        
        object1.setBounds( 10, 10, 150, 150 );
        object2.setBounds( 170, 10, 150, 150 );
        object3.setBounds( 330, 10, 150, 150 );
        
        ///object1.setBackground( Color.green );
        ///object1.setImage( Image.afbeelding1 );
        object1.setBackground( Image.afbeelding1 );
        
        tekstvak = new TextField( 12 );
        f = new Font( "Serif", Font.BOLD, 20 );
        
        ///knop.setBackground( Color.red );
        tekstvak.setFont( f );
        
        tekstvak.setText( "fiets" );
        
        add( tekstvak );
        add( object1 );
        add( object2 );
        add( object3 );
    }
    
    public void paint( Graphics g ) {
        g.drawImage( afbeelding1, 100, 100, 150, 150, this );
    }
    
}

  • Alex Picard
  • Registratie: November 2005
  • Laatst online: 19-11 00:56
Java:
1
object1.setBackground( afbeelding1 );


edit:
Dat was syntax verbeteren, nu de semantiek


Volgens http://java.sun.com/j2se/1.5.0/docs/api/ kan je alleen een achtergrondkleur zetten op een awt Button. Je zou wel een javax.swing.JButton kunnen gebruiken, deze kent de methode setIcon (deze heeft een image als Icon nodig, maar dat kan je allemaal terugzoeken in de API).

[ Voor 74% gewijzigd door Alex Picard op 05-06-2007 14:24 ]


Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.awt.*;
import java.applet.*;
import javax.swing.ImageIcon;
import java.awt.Image;
import javax.swing.Icon;
import javax.swing.JButton;

public class ingmar extends Applet
{
    JButton object1, object2, object3;
    
    public void init()
    {
        setLayout( null );
                
        object1 = new JButton(new ImageIcon("knop1.gif"));    
        object2 = new JButton(new ImageIcon("knop2.gif"));    
        object3 = new JButton(new ImageIcon("knop3.gif"));    
        
        object1.setBounds( 10, 10, 150, 150 );
        object2.setBounds( 170, 10, 150, 150 );
        object3.setBounds( 330, 10, 150, 150 );
        
        object1.setBorderPainted(false);
        object2.setBorderPainted(false);
        object3.setBorderPainted(false);
        
        add( object1 );
        add( object2 );
        add( object3 );
    }
}


Dank je!!

Dat was hem :-)

De bovenstaande code werkt.

thnx!!!!!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 16:59
Mag ik je een tip geven? Geef alle objecten een logische naam. Je hebt ze nu object1 etc.. genoemd (en je verwijst naar knop1.gif), maar hieraan kun je op geen enkele manier zien welke knop waarvoor verantwoordelijk is. Het is veel logischer om deze btYes, btNo en btCancel (of waar ze dan ook maar voor staan) te noemen.

edit: Ik zie dat je op dit moment ook geen layout gebruikt. Dit is natuurlijk niet verplicht en je huidige method werkt ook, maar je gaat wel problemen krijgen wanneer het venster wordt geresized. Misschien een idee om gewoon een BorderLayout oid te gebruiken?

[ Voor 29% gewijzigd door Marcj op 05-06-2007 15:10 ]


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:51

Robtimus

me Robtimus no like you

Tip 2: nu je overgestapt bent op JButtons, gebruik zoveel mogelijk Swing controls ipv AWT controls. Dus bv een JList ipv een List, maar ook een JApplet ipv een Applet. Dan ziet alles er wat meer uniform uit.

More than meets the eye
There is no I in TEAM... but there is ME
system specs