Problem vyresen
Nakonec se ukazalo ze neumim ani kreslit ;) V kodu sem pro ziskani pocatecnich souranic pouzival metodu getX(), getY(). Coz je uplna blbost. Spravne tedy ma byt :
g.drawRect(5,5,getWidth() - 11, getHeight() - 11);

Jeste jednou dekuji zaradu. castecne resi i problem ktery sem se chystal resit.

  S pozdravem Radek Hubner

Radek Hubner napsal(a):
Dekuji za radu, ale tohle nepomaha. Zjistil jsem vsak dalsi vec co mi to dela. Pokud umistim komponentu na souradnice 0,0 tak se to vykresli spravne pokud ji ale odsunu jinam tak se zase prekresli chybne. Ta sama chyba se mi opakuje i na testovacim formulari ktery nema zadny layout manager(set layout(null)). Dale si NB porad mysli ze ta moje komponenta je jako "container" a ja nevim jak ho prinutit k tomu aby to tak nebylo. I kdyz podle toho jak to je dedene to vypada ze to plati u kazde komponenty.

  S pozdravem Radek Hubner

Rastislav Rehak napsal(a):
Dobry vecer

skuste si este prekryt metodu getPrefferedSize a keby bolo treba tak aj getMaximumSize

Radek Hubner wrote:
Dobry den,
potreboval jsem si napsat vlastni komponentu na graficke zobrazovani jednoho stavu a narazail jsem pri jejim pouziti na jeden problem. Pokud pouzivam vychozi Layout manager z Net Beans 5.5 tak sem mi z komponenty vykresluje jenom cast, v nekterych pripadech dokonce nic. Pokud si na "kreslici" plochu necham vypsat co vraci metoda getWidth() a getWidth() tak dostavam pri vytvoreni hodnotu 100. Pokud komponentu zkousim zvetsovat a zmensovat tak se hodnota take zvetsuje a zmensuje. Pro kontrolu prikladam muj jednoduchy zdrojacek.
Predem Dekuji za odpoved

  S pozdravem Radek Hubner

package cz.tfnet.radek.guical.swing;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JPanel;

public class JComputer extends JPanel{

    public JComputer() {
        ;
    }

    public void paintComponent(Graphics g ) {
        super.paintComponent(g);
        g.setColor(Color.RED);
        g.drawRect(getX()+5,getY()+5,getWidth() - 12, getHeight() - 12);
g.drawString(Integer.toString(getWidth()),getX() + 10, getY() + 10); g.drawString(Integer.toString(getWidth()),getY() + 10, getY() + 20);
    }

 public Dimension getMinimumSize() {
        return new Dimension(100,36);
   }
}





Odpovedet emailem