Olá pessoal
Estou com o seguinte problema: Preciso ter uma lista com uma imagem de fundo estática.
Já tentei:
1º Colocar a imagem num JPanel - mas ao colocar a lista por cima, esta fica menor do que o JPanel.
2º Colocar a imagem como fundo do JList - mas os itens da lista aparecem por trás da imagem.
3º Colocar a imagem como fundo do JScrollPanel - mas a imagem se move ao movimentar a lista.
Olá pessoal
Estou com o seguinte problema: Preciso ter uma lista com uma imagem de fundo estática.
Já tentei:
1º Colocar a imagem num JPanel - mas ao colocar a lista por cima, esta fica menor do que o JPanel.
2º Colocar a imagem como fundo do JList - mas os itens da lista aparecem por trás da imagem.
3º Colocar a imagem como fundo do JScrollPanel - mas a imagem se move ao movimentar a lista.
Todas soluções são bem-vindas.
Obrigada.
Crie um DefaultListModel com a imagem setada insira na criação do objeto Jlist que por sua vez insere no JScrollPanel.
Não consegui implementar sua solução. Poderia me explicar melhor?
neoCortex
bbmany:
Olá neoCortex,
Não consegui implementar sua solução. Poderia me explicar melhor?
Oi… Está meio difícil de testar pois não estou em casa mas creio que deva funcionar vamos lá…
publicclassFrmdoPaint{privatestaticImageprincipalPlanodeFundo;privateJFrameframePrincipal;privateJDesktopPanepanePrincipal;//ContrutorpublicFrmdoPaint(){//aqui pego imagem de um tipo imageIco "getImage()"principalPlanodeFundo=(newImageIcon("Foto.png").getImage());//crio o modelDefaultListModelmodelLstPlanoFundo=newDefaultListModel();//Crio a lista e pinto com a imagem principalPlanodeFundo que está no tamanho 500,800lstPlanoFundo=newJList(modelLstPlanoFundo){publicvoidpaintComponent(Graphicsg){g.drawImage(principalPlanodeFundo,0,0,500,800,scrollPlanofundo);}};JScrollPanescrollLstPlanoFundo=newJScrollPane(lstPlanoFundo);scrollLstPlanoFundo.setsize(500,800);scrollLstPlanoFundo.setLocation(20,20);//Crio o Painel que vai receber os componentespanePrincipal=newJDesktopPane();panePrincipal.add(scrollLstPlanoFundo);//Crio o frame e adiciono o painelframePrincipal=newJFrame();framePrincipal.setSize(800,600);framePrincipal.add(panePrincipal);framePrincipal.setVisible(true);}}
Estou sem IDE para testar más creio que isso já te ajude a resolver seu problema.
se quiser adicionar itens na lista adicione no DefaultListModel:
Testei e consegui colocar a imagem no fundo mas não consegui exibir os valores da lista
neoCortex
bbmany:
Testei e consegui colocar a imagem no fundo mas não consegui exibir os valores da lista
:(
Está adicionando corretamente os valores?
Chegando em casa depois da universidade faço um teste, infelizmente não tenho aula de laboratório na segunda…
Creio que pode estar acontecendo é os valores estarem por baixo, não previ isto, desculpe…
tente adicionar um label ou coisa do gênero diretamente no JList somente para teste e ver se aparece pois, parece que o DefaultListModel não suporta o método repaint().