2012-03-06 26 views
5

Tôi có Canvas, một số trường văn bản và menu ngữ cảnh.Hiển thị JPopupMenu trong Canvas

Khi tôi khởi động ứng dụng và nhấp chuột phải vào canvas, menu bật lên sẽ hiển thị. Nhưng khi tôi viết một cái gì đó bên trong trường văn bản hơn tôi nhấp chuột phải vào khung hình, cửa sổ bật lên sẽ hiển thị phía sau khung hình.

Bất kỳ ý tưởng nào về cách khắc phục điều đó?

+2

đưa ra một số mã, lý tưởng là SSCE. Thông thường, chỉ bằng cách viết một SSCE bạn sẽ tìm thấy vấn đề của bạn. –

+0

SSCE là gì? –

+0

http://sscce.org/, xin lỗi tôi đã bỏ lỡ một C –

Trả lời

5
JPopupMenu.setDefaultLightWeightPopupEnabled(false); 

giải quyết được sự cố.

3

1) CanvasAWT Component, và là Heavyweight type of Components

2) JPopupMenuSwing JComponent và là Lightweight type of JComponents

3) có thể giải quyết điều đó bằng cách sử dụng Swing JPanel hơn AWT Canvas

4) vấn đề của bạn là về Mixing Heavyweight and Lightweight Components hoặc rest is here

+0

Tôi cần một thành phần Heavyweight để vẽ vào nó với opengl. –

+0

đồng ý cách chính xác cho OpenGL, lựa chọn của bạn đơn giản hơn sử dụng JPopup sử dụng Window hoặc un_decorated Dialog, ở đó bạn có thể đặt Swing JButtons, để sử dụng GridLayout – mKorbel

+0

Uggh .. thêm trả lời trước khi tôi có cà phê của tôi là vô nghĩa. +1 –

Các vấn đề liên quan