Galera, eu tenho um JPanel, com JScrollPane.
No JPanel eu tenho diversos Botões espalhados com a função Drag&Drop implementada.
to usando layout null (nao quero usar nenhum layout por motivos específicos). A questao é: quando eu arrasto um botão pra fora da area do jPane eu queria que ele redimensionasse de forma sempre armazenar todos os botões.
publicclassKGraphViewextendsJPanel{privateTreeViewview;//JPanel modificado que contem botoes com drag and dropprivateJScrollPanescroll;publicKGraphView(){super();this.setLayout(null);view=newTreeView();scroll=newJScrollPane();}}
Se você quer que coisas se redimensionem, comece a usar gerenciadores de layout.
tabocu
Pois entao, neste caso não da pra usar (pelo menos nao em tudo).
Funciona assim, tem uma aplicação que preenche um panel com botoes em posições especificas para montar um grafo. Estes botões sao drag and drop.
Entao eu tenho um frame de 500x500 com botões em posições x,y. Caso eu passe de do limite de do frame eu quero que ele aumente para que o scroll funcione adequadamente.
ViniGodoy
Entendi. O scrollpane se baseia no preferredSize do JPanel. Então, se o usuário arrastar para fora da tela, você deve recalcular o novo tamanho e usar o comando setPreferredSize.
tabocu
Este calculo é manual? ou existe algum método que faça isso?
ViniGodoy
Se usar layout nulo, é 100% manual. Mas é meio obvio.
É o x do botão + seu tamanho + x do local onde o usuário soltou o mouse.
tabocu
Outra duvida, se eu tenho um componente em cima de outro, como faço pra trazer pro topo o que esta em baixo?
Obrigado viny!
Suas dicas e respostas estao sendo bem uteis.
Acho que só faltou mais uma. Imagine um Componet quadrado. (mais uma vez sem layout)
Quando eu defino sua posição “setLocation(x,y)” o ponto de construção do component quadrado é a quina esquerda superior dele. è possivel mudar? em QT eu usava algo como setAncor ou algo assim