Menus sumindo numa aplicação desktop

Olá pessoal,

estou com um problema com os menus numa aplicação desktop.

Acontece que ao rodar minha aplicação, tudo funciona beleza. Mas em determinado momento, os menus simplesmente param de funcionar! Os menus do JMenuItem, do JPopUpMenu, e inclusive o panel que exibe as opções de um JCombobox.

Após, vários testes ainda não consegui identificar um “padrão” pra tentar entender em que situação isso ocorre. Mas as vezes acontece depois de muito tempo utilizando o sistema, ou logo após iniciar o sistema. Já tentei aumentar a memória da JVM mas não vi nenhuma mudança significativa. Creio que não é memória, senão não haveria razão para dar o problema logo após iniciar a aplicação.

Andei pesquisando e vi que outras pessoas tiveram o mesmo problema, mas em nenhum lugar encontrei alguma solução pra isso.

Alguém aqui já teve o mesmo problema?

Desde já, obrigado.
Leonardo.

Olá amigo

posta o código.

Silvio

Leonardo

Estou com um problema parecido com o seu. tenho uma aplicação Desktop com alguns buttons , funciona normalmente,
porém se ela esta em tela cheia, ou é o programa ativo , e então entra a proteção de tela do windows xp , na volta da
proteção de tela o ultimo botão pressionado é “pressionado” de volta gerando eventos de button. estou pesquisando pra ver se acho uma solução que não seja eliminar a proteção de tela do windows xp … he…he…

sds

j.silvestre

Olá silviogs, desculpe a demora pra responder.

Enfim, o problema não acontece em um lugar específico, e nem consigo determinar qdo acontece. O programa funciona corretamente e do nada começa a bugar os menus.

Mas eu consegui resolver o problema. A aplicação estava misturando componentes heavyweight (AWT) com componentes lightweight(Swing), e na criação dos menus JMenuPopup, eu estava utilizando o método

Mas em determinado momento, algum componente da minha tela ficava inválido, e o lookandfeel passava a bagunçar as coisas.

Tudo que tive que fazer foi remover essa linhas, e adicionar essas outras duas:

JPopupMenu.setDefaultLightWeightPopupEnabled(false); ToolTipManager.sharedInstance().setLightWeightPopupEnabled(false);

Essas duas linhas indicam que sempre que um popup for construído, o lookandfeel deve construí-los com componentes lightWeight (se o parâmetro for true) ou heavyWeight(se o parâmetro for false).

Não sei se é a solução mais adequada, mas resolveu o meu problema. Se alguém tiver uma solução melhor para o problema HW x LW por favor poste aí.

Achei esses links úteis que me ajudaram:

http://java.sun.com/products/jfc/tsc/articles/mixing/index.html
http://java.sun.com/developer/technicalArticles/GUI/mixing_components/index.html
http://forum.worldwindcentral.com/archive/index.php?t-11051.html
http://download.oracle.com/javase/6/docs/api/javax/swing/JPopupMenu.html#setDefaultLightWeightPopupEnabled(boolean)

Abraços, Leonardo

Olá de novo,

Parece que eu resolvi meu problema em partes… Os popups dos menus estão aparecendo, mas o texto dos JMenuItem sumiram…
Segue imagem abaixo de como o problema acontece… E não estoura nenhuma exceção.

Notem que essa parte pintada de preto eu que coloquei para que vocês pudessem visualizar o popup do menu criado corretamente, mas sem nenhum texto.

E da mesma forma que antes, isso não acontece sempre… O programa roda de boa, e de repente começa a dar esse problema.

Alguém sabe o que pode ser isso?

Abs, Leonardo

Alguem?

ainda nao consegui resolver o problema…