Rechteck so groß wie Panel oder wie mache ich einen MouseListener der nur das Rechteck abdeckt?



  • Hallo
    Ich habe folgendes Problem ich Zeichne in diesem Panel ein Rechteck

    public class Rectangle extends Label {
    int x1;
    int x2;
    int y1;
    int y2;
    Rectangle(int x, int y, int x0, int y0){
    x1 = x;
    x2 = x0;
    y1 = y;
    y2 = y0;
    setVisible(true);
    }

    public void paint (Graphics g){
    g.drawRect(x1,y1,x2,y2);
    }
    }
    Das was ich nun will ist dass das Panel genauso groß ist wie das Rechteck das ich zeichne nur leider ist das Panel
    (immer größer und füllt den Frame aus) als das Rechteck in dem ich das Rechteck zeichne!

    thx



  • Das Panel füllt immer das Fenster aus? Dann hast du wohl das flasche Layout. Für Pixekgenaue Positionierung solltest du gar kein Layout benutzen.



  • Hi....

    Ich habe folgendes Problem ich Zeichne in diesem Panel ein Rechteck
    public class Rectangle extends Label {
    int x1;
    int x2;
    int y1;
    int y2;
    Rectangle(int x, int y, int x0, int y0){
    x1 = x;
    x2 = x0;
    y1 = y;
    y2 = y0;
    setVisible(true);
    }
    public void paint (Graphics g){
    g.drawRect(x1,y1,x2,y2);
    }
    }

    Mhh.. erstmal seh ich da kein Panel sondern nen Label....aber kann es sein das du das hier erreichen willst ??

    class FramedLabel extends Label
    {
    	public FramedLabel()
    	{
    		super();
    	}
    
    	public FramedLabel(String text)
    	{
    		super(text);
    	}
    
    	public FramedLabel(String text, int alignment)
    	{
    		super(text,alignment);
    	}
    
        public void paint(Graphics g)
        {
            super.paint(g);
            g.drawRect(0,0,this.getWidth()-1,this.getHeight()-1);
    
        }
    }
    

    Das gleiche geht natuerlich auch fuern Panel....

    class FramedPanel extends Panel
    {
    	public FramedPanel()
    	{
    		super();
    	}
    
    	public FramedPanel(LayoutManager layout)
    	{
    		super(layout);
    	}
    
        public void paint(Graphics g)
        {
            super.paint(g);
            g.drawRect(0,0,this.getWidth()-1,this.getHeight()-1);
    
        }
    }
    

    Das ergibt halt nen gerahmtes Label bzw. Panel.... wenn ich dich jetzt voellig falsch verstanden hab bitte ich um verzeihung... is schon spaet 🙂

    Bye Darth Vader


Anmelden zum Antworten