Canvas menutupi Menu ?!?

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Canvas menutupi Menu ?!?

Eko Budhi Suprasetiawan
Ehlo all,
Ifnu, Hendro, deny, Tony, temen-temen yg dah berpengalaman Netbenas,
and member lain, saya mau perlu bantuan nich ...

Saya lagi mencoba mengintegrasikan Leuser ke dalam Netbeans Platform.
Nah dalam satu experimen sangat sederhana, saya dapat problem.

Ini step yg saya coba :

1. Buat Project > Netbeans Suite
2. Buat satu Module
3. Buat satu Windows component (Top Component)
4. Edit Top Component tsb agar Layoutnya : BorderLayout
5. Buka Pallet. Drag and Drop AWT Canvas ke atas Top Component
6. Jalankan aplikasi
7. Buka Windows yg ada Canvasnya tsb
8. Nah saat windows sudah terbuka, coba klik menu misalnya Windows
9. Menu item windows muncul sebagai daftar ke bawah
10. Tapi "KOK" Canvasnya "menutupi" menu tsb jadi gak keliatan

Ada yg perlu saya Customize ?

Cheers ...


Eko Budhi S

Cheers ...

Reply | Threaded
Open this post in threaded view
|

Re: Canvas menutupi Menu ?!?

Tonny Kohar
Hi,

On Sat, 2008-03-08 at 00:32 +0000, Eko Budhi S, Ghifari.Org wrote:

> Ehlo all,
> Ifnu, Hendro, deny, Tony, temen-temen yg dah berpengalaman Netbenas,
> and member lain, saya mau perlu bantuan nich ...
>
> Saya lagi mencoba mengintegrasikan Leuser ke dalam Netbeans Platform.
> Nah dalam satu experimen sangat sederhana, saya dapat problem.
>
> Ini step yg saya coba :
>
> 1. Buat Project > Netbeans Suite
> 2. Buat satu Module
> 3. Buat satu Windows component (Top Component)
> 4. Edit Top Component tsb agar Layoutnya : BorderLayout
> 5. Buka Pallet. Drag and Drop AWT Canvas ke atas Top Component
> 6. Jalankan aplikasi
> 7. Buka Windows yg ada Canvasnya tsb
> 8. Nah saat windows sudah terbuka, coba klik menu misalnya Windows
> 9. Menu item windows muncul sebagai daftar ke bawah
> 10. Tapi "KOK" Canvasnya "menutupi" menu tsb jadi gak keliatan
>

Ini kelihatannya masalah heavyweight (AWT) vs lighweight (Swing)
component z-order. Dan memang heavyweight component akan selalu diatas
lightweight component. Supaya z-order nya bisa bagus dan sesuai yang di
inginkan jangan nge-mix antara component swing and component awt. Kalau
pakai swing pakai swing semua, kalau pakai awt pakai awt semua.

Kalau hanya butuh canvas dari awt component collections, bisa di ganti
pakai swing (jpanel atau jcomponent)

Cheers
Tonny Kohar
--
KIYUT
imagine, design, create ...
http://www.kiyut.com

Reply | Threaded
Open this post in threaded view
|

Re: Canvas menutupi Menu ?!?

Eko Budhi Suprasetiawan
--- In [hidden email], Tonny Kohar <tonny@...> wrote:

>
>
> Ini kelihatannya masalah heavyweight (AWT) vs lighweight (Swing)
> component z-order. Dan memang heavyweight component akan selalu diatas
> lightweight component. Supaya z-order nya bisa bagus dan sesuai yang di
> inginkan jangan nge-mix antara component swing and component awt. Kalau
> pakai swing pakai swing semua, kalau pakai awt pakai awt semua.
>
> Kalau hanya butuh canvas dari awt component collections, bisa di ganti
> pakai swing (jpanel atau jcomponent)

Hiks 1000x
mesti merombak total infrastructure :((


Reply | Threaded
Open this post in threaded view
|

Re: Re: Canvas menutupi Menu ?!?

Tonny Kohar
Hi,

On Mon, 2008-03-10 at 03:36 +0000, Eko Budhi S, Ghifari.Org wrote:

> --- In [hidden email], Tonny Kohar <tonny@...>
> wrote:
> >
> >
> > Ini kelihatannya masalah heavyweight (AWT) vs lighweight (Swing)
> > component z-order. Dan memang heavyweight component akan selalu
> diatas
> > lightweight component. Supaya z-order nya bisa bagus dan sesuai yang
> di
> > inginkan jangan nge-mix antara component swing and component awt.
> Kalau
> > pakai swing pakai swing semua, kalau pakai awt pakai awt semua.
> >
> > Kalau hanya butuh canvas dari awt component collections, bisa di
> ganti
> > pakai swing (jpanel atau jcomponent)
>
> Hiks 1000x
> mesti merombak total infrastructure :((
>

Kalau problem nya juga hanya di Menu yang overlap sama canvas. Maka bisa
pakai workaround jpopupMenu.setLightWeightPopupEnabled(false). Dengan
asumsi anda bisa dapat access ke menu object nya

Tapi kalau component lain yang overlap, setahu saya tidak ada solusi.
Yang bisa cuman JPopupMenu dan JComboBox, component lain tidak ada /
blom ada :(

Tapi juga paling baik itu tidak pakai workaround, jadi sebisa mungkin
tidak ngemix awt dan swing.

Cheers
Tonny Kohar
--
KIYUT
imagine, design, create ...
http://www.kiyut.com

Reply | Threaded
Open this post in threaded view
|

Konversi ke JPanel. Re: Canvas menutupi Menu ?!?

Eko Budhi Suprasetiawan
--- In [hidden email], Tonny Kohar <tonny@...> wrote:

>
>
> Tapi juga paling baik itu tidak pakai workaround, jadi sebisa mungkin
> tidak ngemix awt dan swing.
>
> Cheers
> Tonny Kohar
> --
> KIYUT
> imagine, design, create ...
> http://www.kiyut.com
>

Terimakasih banget atas assistance-nya. Dalam framework Leuser, di
titik paling dasar ada Canvas.
Skrng sya sudah convert ke JPanel.

Proses konvert.

Step 1.
Ubah dari :

extends Canvas

ke :

extends JPanel

Step 2.
Semula ada beberapa method terkait drawing :


    public void update(Graphics g)
    {
        paint(g);
    }

dan

 public void paint(Graphics g)
    {

// di sini digambar ...

}

Biarkan method tsb.

Step 3
Tambahkan method ini buat JPanel :


    @Override
    public void repaint()
    {
        //super.repaint();
        Graphics g = getGraphics();
        paint(g);
    }

    @Override
    public void updateUI()
    {
        //super.updateUI();
        Graphics g = getGraphics();
        update(g);
    }

Nah,
dgn 3 step. semua fitur berjalan normal ... (So far.)

Nah skrng menu bisa dech muncul di atas gambar :D Makasih semua !

Cheers !