# Bild auf JButton in Applet, JButton wir aber net angezeigt?



## KpA3 (11. Jul 2006)

Hallo Leute,

ich möchte gern einen JButton in mein Applet einbinden auf dem ein Bild ist (Der JButton soll zudem an einer bestimmten Position im Applet gesetzt werden so wie die Textfelder im Code.). Der JButton wird mir aber nicht angezeigt auch keine Fehlermeldung beim compilieren. Vielleicht kann mir einer von Euch hier weiter helfen. 

Danke schonmal.



```
import java.applet.Applet;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Graphics;
import java.awt.Panel;
import java.awt.TextField;
import javax.swing.ImageIcon;
import javax.swing.JButton;

public class LoginApplet extends Applet {

	private Image imgBackground;
	private TextField txtFdUser;
	private TextField txtFdPw;

	private JButton logButton;
	private Panel panel;
	
	public void init() {

		imgBackground = getImage(getCodeBase(), "bilder/login_hintergrund.gif");

		txtFdUser = new TextField("user");
		txtFdPw = new TextField("password");

		setLayout(null);

		add(txtFdUser);
		add(txtFdPw);
		
		txtFdUser.setBounds(60 ,13, 65 , 20);
		txtFdPw.setBounds(60 ,43, 65 , 20);

		logButton = new JButton(new ImageIcon("button_login.gif"));
		logButton.setMargin(new Insets(0, 0, 0, 0));
		logButton.setContentAreaFilled(false);
		logButton.setBorderPainted(false);
		logButton.setFocusPainted(false);
		
		panel = new Panel();
		panel.add(logButton);

		//panel.setLocation(6, 73);
		panel.setBounds(6, 73, 61, 21);
	}

	public void paint(Graphics g) {
	
		g.drawImage(this.imgBackground, 0, 0, this);

	}
}
```


----------



## Leroy42 (11. Jul 2006)

KpA3 hat gesagt.:
			
		

> ich möchte gern einen JButton in mein Applet einbinden


Da geht's schon los   

Du darfst Lightweight-Komponenten (JButton) nicht mit Heavyweights(Applet)
mischen. Da kommt nie was vernünftiges bei raus.

Da du das Bild auf einem JButton willst (Auf Buttons geht's von Haus aus nicht)
mußt du auch ein JApplet benutzen.


----------



## KpA3 (11. Jul 2006)

Leroy42 hat gesagt.:
			
		

> KpA3 hat gesagt.:
> 
> 
> 
> ...




hmmm ok danke,  kann ich dann das JApplet auch in eine internetseite einbinden oder geht das nur in einer swing oberfläche?


----------



## KpA3 (12. Jul 2006)

Hallo also ich hab das ganze in ein JApplet umgewandelt, aber trotzdem wird mir der JButton immer noch net angezeigt!?


```
import javax.swing.JApplet;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Graphics;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.ImageIcon;
import javax.swing.JButton;

public class LoginJApplet extends JApplet {

	private Image imgBackground;
	private JTextField txtFdUser;
	private JTextField txtFdPw;

	private JButton logButton;
	private JPanel panel;
	
	public void init() {

		imgBackground = getImage(getCodeBase(), "bilder/login_hintergrund.gif");

		txtFdUser = new JTextField("user");
		txtFdPw = new JTextField("password");

		setLayout(null);

		add(txtFdUser);
		add(txtFdPw);
		
		txtFdUser.setBounds(60 ,13, 65 , 20);
		txtFdPw.setBounds(60 ,43, 65 , 20);

		logButton = new JButton(new ImageIcon("button_login.gif"));
		logButton.setMargin(new Insets(0, 0, 0, 0));
		logButton.setContentAreaFilled(false);
		logButton.setBorderPainted(false);
		logButton.setFocusPainted(false);
		
		panel = new JPanel();
		panel.add(logButton);

		//panel.setLocation(6, 73);
		panel.setBounds(6, 73, 61, 21);
	}

	public void paint(Graphics g) {
	
		g.drawImage(this.imgBackground, 0, 0, this);

	}
}
```


----------



## Gast (12. Jul 2006)

du hast dein panel, der den Button enthält in das Gesampane nicht eingefügt
add(panel);

Youssef


----------



## KpA3 (12. Jul 2006)

Gast hat gesagt.:
			
		

> du hast dein panel, der den Button enthält in das Gesampane nicht eingefügt
> add(panel);
> 
> Youssef



also ich hab das mal eben ausprobiert aber es funktioniert immer noch nicht kann mir denn keiner weiter helfen, ich verzweifel sont noch. :roll: 


```
import javax.swing.JApplet;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Graphics;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.ImageIcon;
import javax.swing.JButton;

public class LoginJApplet extends JApplet {

	private Image imgBackground;
	private JTextField txtFdUser;
	private JTextField txtFdPw;

	private JButton logButton;
	private JPanel panel;
	
	public void init() {

		imgBackground = getImage(getCodeBase(), "bilder/login_hintergrund.gif");

		txtFdUser = new JTextField("user");
		txtFdPw = new JTextField("password");

		setLayout(null);

		add(txtFdUser);
		add(txtFdPw);
		
		txtFdUser.setBounds(60 ,13, 65 , 20);
		txtFdPw.setBounds(60 ,43, 65 , 20);

		logButton = new JButton(new ImageIcon("button_login.gif"));
		logButton.setMargin(new Insets(0, 0, 0, 0));
		logButton.setContentAreaFilled(false);
		logButton.setBorderPainted(false);
		logButton.setFocusPainted(false);
		
		panel = new JPanel();
		panel.add(logButton);
		add(panel);

		panel.setLocation(6, 73);
		//panel.setBounds(6, 73, 61, 21);
	}

	public void paint(Graphics g) {
	
		g.drawImage(this.imgBackground, 0, 0, this);

	}
}
```


----------



## youssef (13. Jul 2006)

hallo. ich habe dein Applet in eclipse ausprobiert und der button wird bei mir angezeigt.
um das Problem zu lokalisieren
versuch mal ohne hintegrundbild das Applet zu zeichnen.(nur die 2 texfelder und der  button)
wenn das nichts bringt dann die funktionen der JButton eine nach der andere commentieren und den effekt beobachten.
hier mein versuch:

```
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Insets;

import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class LoginJApplet extends JApplet {

    private Image imgBackground;

    private JTextField txtFdUser;

    private JTextField txtFdPw;

    private JButton logButton;

    private JPanel panel;

    public void init() {

        //Container contentpane = getContentPane();
        
        imgBackground = getImage(getCodeBase(), "DukeIcon.gif");
        
        txtFdUser = new JTextField("user");
        txtFdPw = new JTextField("password");

        setLayout(null);

        add(txtFdUser);
        add(txtFdPw);

        txtFdUser.setBounds(60, 13, 65, 20);
        txtFdPw.setBounds(60, 43, 65, 20);

        logButton = new JButton(new ImageIcon(
                "login2.gif-35f8aac2-4adb68c7.gif"));
        logButton.setMargin(new Insets(0, 0, 0, 0));
        logButton.setContentAreaFilled(false);
        logButton.setBorderPainted(false);
        logButton.setFocusPainted(false);

        panel = new JPanel();
        panel.add(logButton);
        panel.setBounds(6, 73, 61, 21);
        add(panel);
        

    }

    public void paint(Graphics g) {
        
        super.paint(g);


    }
}
```

wie führst du dein applet aus aus IDE oder im browser ? wie sieht dein html datei aus ?
welche Bilder verwendest du welche grösse haben die ?
ich hoffe das hilft.

youssef


----------



## L-ectron-X (15. Jul 2006)

Man kann auch ohne Button/JButton Schaltflächen realisieren:
http://www.java-forum.org/de/viewtopic.php?p=182774#182774


----------

