JScroll em JFrame desenhado com paint(Graphics g) [RESOLVIDO]  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

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?

This message was edited 1 time. Last update was at 18/05/2010 14:48:35


Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
Hebertbc
JavaChild
[Avatar]

Membro desde: 07/11/2008 20:27:15
Mensagens: 113
Localização: Campo Grande / MS
Offline

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.

C'est la vie monsieur excentrique...
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

O certo era fazer no JPanel 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?

Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
Hebertbc
JavaChild
[Avatar]

Membro desde: 07/11/2008 20:27:15
Mensagens: 113
Localização: Campo Grande / MS
Offline

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.

 Nome do arquivo impressao.rar [Disk] Download
 Descrição
 Tamanho 4 Kbytes
 Baixado:  51 vez(es)

This message was edited 2 times. Last update was at 14/05/2010 10:09:57


C'est la vie monsieur excentrique...
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

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?

Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
Hebertbc
JavaChild
[Avatar]

Membro desde: 07/11/2008 20:27:15
Mensagens: 113
Localização: Campo Grande / MS
Offline

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

This message was edited 1 time. Last update was at 14/05/2010 10:15:02


C'est la vie monsieur excentrique...
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

É, 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...

Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

1. Desenhe no JPanel (ou num JComponent, se a imagem não for container de componentes);
2. Ajuste o setPreferredSize() desse JPanel para o tamanho total da imagem;
3. Coloque o JPanel num JScrollPane e o JScrollPane sobre o JFrame.

This message was edited 1 time. Last update was at 14/05/2010 10:20:16


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

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?

Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

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.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

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...

Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

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.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
VantuilJose
JavaChild
[Avatar]

Membro desde: 15/09/2008 11:47:53
Mensagens: 101
Offline

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...

Vantuil Oliveira
Tecnólogo em Análise e Desenvolvimento de Sistemas - IFMG Bambuí
Mestrando em Ciência da Computação - UFOP
-
"I am the maniac serial killer that knows where you live who will maintain your code!"
[MSN]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team