Background no JDesktopPane  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
Gregori
Thread.start()

Membro desde: 05/06/2009 11:14:38
Mensagens: 46
Offline

Boa tarde, estou com uma dúvida em relação ao JDesktopPane. Como faço pra colocar uma imagem de Background e ñ uma cor?

desde já agradeço;


" stay hungry, stay foolish"
laudenpower
JavaTeenager
[Avatar]

Membro desde: 28/12/2008 21:00:08
Mensagens: 193
Offline

Bom eu já consegui fazer isso com panel, nesse caso você deveria extender uma classe de JDesktopPane e sobreescrever o método onPaint da classe extendida ai nesse caso você poderia criar um objeto Image e passar esse imagem no método que desenha. Assim o código eu não tenho aqui mas você pode procurar no fórum que com certeza vai encontrar rapidamente.

Espero ter ajudado

Enquanto cultivares teu saber, nada tens a temer!
cidfillippe
Thread.start()
[Avatar]

Membro desde: 04/08/2008 12:47:46
Mensagens: 45
Offline

Uma vez achei um tópico falando com funcionava era mais ou menos assim:
[Email] [MSN]
didiosam
JavaBaby

Membro desde: 06/11/2006 23:52:35
Mensagens: 85
Localização: Cascavel - PR
Offline

imagem centralizada no seu JDesktopPane:

laudenpower
JavaTeenager
[Avatar]

Membro desde: 28/12/2008 21:00:08
Mensagens: 193
Offline

Tipo agora fiquei curioso... Você gostaria de alterar a imagem de fundo por qual motivo? Tipo se fosse o caso de colocar um logo do sistema, não seria mais fácil colocar a imagem em um JLabel e centralizar na tela?

Enquanto cultivares teu saber, nada tens a temer!
roger_rf
Virtual Machine Man

Membro desde: 29/04/2009 07:40:19
Mensagens: 602
Localização: Natal/RN
Offline

lauden: a classe JDesktopPane foi projetada para exibir JInternalFrame's (que admitem justaposição), não componentes tais como JLabel. JInternalFrame's podem ficar justapostos, mas um JLabel não admite outros componentes justapostos sobre ele. Assim, o caminho correto para exibir uma imagem em JDesktopPane é realmente via paintComponent() - se você tentar exibir um JInternalFrame numa área coberta por um JLabel, muito provavelmente o JInternalFrame não vai aparecer.

didiosam
JavaBaby

Membro desde: 06/11/2006 23:52:35
Mensagens: 85
Localização: Cascavel - PR
Offline

apenas para complementar, nao fiz o teste com JLabel, mas jah coloquei JButton no JDesktopPane e o que ocorre é que quando voce abre um JInternalFrame e passa com o mouse sobre ele, o button vem para frente, é algo como se aquela parte do JInternal fosse "apagada" e o button que está atras acaba aparecendo... colocando JPanels com buttons no JDesktop o comportamento é parecido, eles acabam aparecendo sempre sobre os JInternalFrame...

[/´s
Gregori
Thread.start()

Membro desde: 05/06/2009 11:14:38
Mensagens: 46
Offline

Valeu pelas dicas, foram de muita ajuda! Consegui resolver o problema.

Valeu

" stay hungry, stay foolish"
laudenpower
JavaTeenager
[Avatar]

Membro desde: 28/12/2008 21:00:08
Mensagens: 193
Offline

roger_rf wrote:lauden: a classe JDesktopPane foi projetada para exibir JInternalFrame's (que admitem justaposição), não componentes tais como JLabel. JInternalFrame's podem ficar justapostos, mas um JLabel não admite outros componentes justapostos sobre ele. Assim, o caminho correto para exibir uma imagem em JDesktopPane é realmente via paintComponent() - se você tentar exibir um JInternalFrame numa área coberta por um JLabel, muito provavelmente o JInternalFrame não vai aparecer.


Bom nesse caso acredito que com JLabel a coisa pode ser um pouco diferente, digo isso por que no meu trablho final de programação, para incrementar o aplicativo, eu coloquei uma imagem em um Jlabel e adicionei ao JDesktopPane sendo que o mesmo se comportou normalmente com os JInternalFrame's abertos sobre ele, nesse caso acredito que talvez a regra apenas se aplica a componentes que podem receber foco sendo que o JButton é um desses componentes.


Enquanto cultivares teu saber, nada tens a temer!
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team