Pessoal, tô desenhando uma imagem direto no Graphics de um JFrame, no paint(Graphics g)…
Só que, quando a imagem é maior que o JFrame não estou conseguindo colocar Scroll nele…
Alguém tem alguma idéia?
JScroll em JFrame desenhado com paint(Graphics g) [RESOLVIDO]
12 Respostas
Eu fiz um bagulho parecido uma vez eu coloquei um jscrollpane em um jlabel e setei o icone do jlabel. (POG) 
Acredito que o correto sera vc criar um jscrollpanel com um jpanel e desenhar nele.
O certo era fazer no JPanel :oops: mas…
Só que no JPanel não funciona também… Mesmo eu colocando o JScrollPane e adicionando o JPanel a ele, quando o paintComponent() é chamado ferra com tudo…
Hebertbc, você tem o código que fez?
Hehe não repara nos cabritos… pq na epoca eu botei na cabeça “vou aprender java”…
O esquema é simples… criei um jscrollpane, coloquei um jlabel dentro dele e setei o icone do jlabel.
Valeu pelo código…
Mas ele não pode me ajudar muito…
Eu tenho que desenhar sobre a imagem, o usuário pega o mouse e pode fazer bolinhas e quadradinhos em cima da imagem…
Então preciso de fazer isso no paintComponent…
Vc tem mais alguma idéia? alguém tem?
Olha acredito que para desenhar vc tem que alterar o metodo paint… fiz um bagulho parecido uma vez… vamos ver se acho o codigo aki
É, eu sobrescrevo o paintComponent(), eu permito que o usuário desenhe tal, isso já tá pronto, mas só na parte da imagem que apare no componente…
Eu queria mais que isso…
Preciso que ele possa desenhar por toda a imagem… Ela toda deve aparecer no componente…
- Desenhe no JPanel (ou num JComponent, se a imagem não for container de componentes);
- Ajuste o setPreferredSize() desse JPanel para o tamanho total da imagem;
- Coloque o JPanel num JScrollPane e o JScrollPane sobre o JFrame.
ViniGodoy, será que o setPreferedSize() resolve?
Vou tentar na hora do almoço, hehehe…
Eu desenho a mesma imagem toda hora, o usuário arrastou o mouse, eu tenho que desenhar a imagem, todas as formas que ele já desenhou, e a forma que ele está desenhando… Tem alguma recomendação em relação a isso?
Resolve sim. O ScrollPane usa o PreferredSize para decidir quando as scrollbars entram ou não.
Quanto a ter que redesenhar tudo, nenhuma recomendação. É assim mesmo que funciona. Só tome cuidado para não carregar arquivos ou fazer outras operações lentas do tipo dentro do método paintComponent.
Ah blz… Tava com medo de fazer isso…
Mas já tomei cuidado, sem criar muitos objetos, utilizando BufferedImage pra evitar flip e tals…
Estava lendo um livro que porcamente traduzido seria: “10 coisas que nunca fará no trabalho”, kkkk, aprendi um monte de coisas legais lá que poderei utilizar no meu projeto de conclusão de curso…
Depois posto o que aconteceu com o preferedsize…
Valeu…
Dá uma lida na área de Java 2D do meu site. Explica bastante coisa sobre uso de BufferedImage, page flipping, double buffering, entre outras coisas.
Deu certinho…
Valeu ViniGodoy, era só isso mesmo… Dando o setPrefferedSize() no panel com as dimensões da imagem deu tudo certo… 
Depois de apanhar bastante… hehehehe
O material no seu site é muito bom… Tô lendo tudo… Valeu…