» »

[Java] NetBeans - Paint event

[Java] NetBeans - Paint event

Robocop1 ::

V Javi (v NetBeansu) programiram desktop aplikacijo, kjer je potrebno risanje na jFrame. Vsakokrat, ko bi uporabnik kliknil na jFrame, bi se morala na jFrame (poleg obstoječe vsebine) izrisati neka geometrijska oblika.
V dogodku componentShown (za jFrame) rišem na naslednji način:
jFrame1.getGraphics().drawLine(0,0,100,100); // primer za risanje črte

Črta se lepo nariše, vendar imam nekaj problemov:
1. Če odprem in zaprem meni, na sliki ostane "senca" oz. obris/sled, kjer je bil odprt meni. Hočem pa, da se po zaprtju menija lepo vidi slika, ki je izrisana na jFrame.
2. Če formo pomanjšam v pladenj in povečam, se slika izbriše. Če formo premaknem čez ekran (tako da je samo del forme na ekranu), se tisti del slike izbriše.
3. Medtem, ko uporabnik riše geometrijske oblike, slika utripa. Zaporedje dogodkov je naslednje:
- funkcija mouseClicked (kjer se določi kje in kaj se nariše)
- iz funkcije mouseClicked kličem paintComponent, kjer narišem obliko (kot v zgornjem primeru).

Zanima me, kako rešiti te težave? Obstaja kakšna posebna funkcija "Paint", kot jo ima C#?

nightrage ::

Tole metodo vrž v class .
    @Override
    public void paint(Graphics g)
    {
        super.paint(g);
        //todo tukaj vstavi svojo kodo
    }

Robocop1 ::

Sem probal, vendar to ne reši vseh težav.

Če formo premaknem z ekrana ali jo pomanjšam v pladenj, tokrat slika ostane na formi. Rešil sem točko 2. Še vedno pa ostane obris menija, če se iz menija File premaknem na Edit. Prav tako je še vidno utripanje, kadar je na formi izrisanih več geometrijskih oblik.

nightrage ::

Verjetno boš moral ob kakšnem dogodku tudi kakšen refresh() forme klicat.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Java, pozicija kurzorja znotraj JPanel

Oddelek: Programiranje
7746 (624) marjan_h
»

java, Swing in vmesnik ActionListener

Oddelek: Programiranje
5677 (614) marjan_h
»

[Java] Zasnova shoot em up igre

Oddelek: Programiranje
111191 (870) PecenkA
»

Vprašanje iz Jave

Oddelek: Programiranje
71139 (879) illion
»

[Java]Vprašanja

Oddelek: Programiranje
242103 (1571) Bela01

Več podobnih tem