Selbstgeschrieben ButtonKlasse kann nicht "geadded&quot

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hey,
hoffe Ihr könnt mir helfen. Ich wollte eine eigene innere ButtonKlasse schreiben, das hat auch glaube ich ganz gut geklappt(konnte es leider noch nicht ausprobieren da ich beim compilieren die ganze Zeit einen Fehler habe) aber ich kriege denn neuen erzeugten Button durch "add" nicht ins Frame rein. Habe immer die Fehlermeldung
Title.java:49: add(java.awt.PopupMenu) in java.awt.Component cannot be applied to (java.awt.Panel)
Hier mal ein Stück vom Quelltext :
Code:
import java.awt.*;
import java.awt.image.BufferedImage; 
import javax.swing.*;

//Class Title
public class Title extends Label
{
     //Attributes
     private Image MBOben,BExit;
     
     private class MeinB extends Button
     {
     	public Dimension getPrefferedSize()
	{
		return new Dimension(60,20);
	}
	
	public MeinB(String label)
	{
	        super(label);
	}
	
	public void paint(Graphics g1)
	{
		BExit = getToolkit().getImage("../pics/BExit.gif");
    		g1.drawImage(BExit,0,0, this);
	}
     }
   
    //Constructor
    public Title()
    {
        setSize(900,30);
[b]	MeinB BExit = new MeinB("Test");
	add(BExit);[/b]
    }//Constructor end

Hoffe das Ihr daraus vielleicht schlau werdet 😀

Danke !!!
 
Die Klasse Title ist abgeleitet von Label. Label kann aber kein Panel hinzufügen... versuchs doch mal mit einem Frame anstatt Label.
 
Danke, da hätte ich auch mal drauf kommen können :?
Hab jetzt aber das Problem das der Button auf dem ganzen Frame liegt und dadurch das andere Image nicht mehr zusehen ist. All meine Versuche den Button zu verkleinern haben nicht geklappt?! 🙁

Code:
    public Title()
    {
        setSize(900,30);
	MeinB BExit = new MeinB("../pics/BExit.gif");
	BExit.setBounds(0,0,50,30);
        BExit.addActionListener(new ActionListener()
        {            
            public void actionPerformed(ActionEvent e)
            {
                System.exit(0);
            }
        });
	BExit.setLocation(50,50);
	add(BExit);
	//setVisible(true);
    }//Constructor end

    
    //Methodes    

    //paint
    public void paint(Graphics g)
    {   
  	MBOben = getToolkit().getImage("../pics/Titel.gif");
    	g.drawImage(MBOben,0,0, this);
    }//Method paint end
 
ähm..erbt Title von Frame? In diesem Fall IST Title das Fenster...erbe dann besser von Panel...

ansonsten guck mal nach dem layout
 
Erstmal danke, das normale Image wird jetzt angezeigt. Aber vom Button ist immer nur die Hälfte zusehn? Habs jetzt mit GridLayout und FlowLayout versucht, aber das klappt beides nicht. Das Bild ist 30*50px gross und ich habe bei
new Dimension() sogar mal 200*200 eingegeben und ich seh trotzdem nur die Hälfte des Buttons? ???:L
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben