| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/09/2002 10:36:59
|
andre
Smalltalk
Membro desde: 02/09/2002 09:55:33
Mensagens: 3
Offline
|
Olá Companheiros,
Mais uma vez, e talvez outras vezes, irei recorrer ajuda de vc´s, consegui resolver o problema da referência na posição do mouse, porém como estou resolvendo os problemas por etapas vamos lá:
1- estou selecionando as figuras a serem inseridas na area de trabalho atraves de um painel contendo botoes. Ao selecionar um desses botoes, faco com que no evento de click desse botao um objeto do tipo Image receba a figura (do tipo "gif") contida em uma area definida por um caminho ou path.
E posteriormente insiro com o click do mouse (evento do mesmo) a figura com a seguinte linha
public void MousePressed (MouseEvent e) {
int x = e.getX();
int y = e.getY();
Graphics g = getGraphics();
/* img = contem a imagem ao selecionar em um dos buttons no painel de controle */
g.drawImage(img, x, y, null);
/* a lista a seguir e uma sequencia de imagens que foram inseridas na area de trabalho - de modo que para uma nova pintura da area as imagens possam ser buscadas nessa lista */
listaImagens.adicionar(img, x, y);
g.dispose();
}
Em torno desse pequeno modulo pergunto ? Por que quando seleciono uma figura do painel, a 1a vez para qualquer objeto selecionado, quando dou um click no mouse para apresentar a imagem, ela está lá e não visivel, somente a partir do 2 click em diante é que as figuras aparecem ?Como eu poderia resolver esse problema ?
2 - A area de trabalho do meu aplicativo herda de um JScroolPanel implementando a classe MouseListener se nao me falha memoria. Em torno disto, faço outra pergunta : quando insiro os objetos (as figuras) nessa area de trabalho e redimensiono essa área, a barra de scrool não fica ativada e os objetos que estão inseridos nessa área escondidos somente poderão ser revistos se eu ampliar novamente a janela. Como resolver isso, dá impressão que as figuras não estão inseridas na área de trabalho (ela parece não "enxergar" isso).
3 - Algum de vc´s conhece um componente ou como eu poderia implementar o zoom in e o zoom out para a area de trabalho ?.
De inicio e só, peço desculpas se são muitas perguntas, porém se alguem tiver uma solução ou identificar qual o problema, gostaria de uma ajuda.
Desde ja agradeço
André
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/09/2002 11:42:48
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
opa andre, seja bem vindo,
para receber os valores X e Y relativos ao objeto que gerou o MouseEvent, voce deve utilizar os metodos MouseEvent.getX() e MouseEvent.getY().
se voce ja esta utilizando esses metodos, o problema deve ser que voce esta conectando o seu MouseListener com o container errado, pode enviar um pouco do seu codigo para analise?
isso poderia gerar a chamada no teu MouseListener, pintar a tela, e depois a chamada num objeto que esta contido nesse container, o que limparia novamente (ou faria alguma outra coisa) com esse espaco.
abraco
guilherme
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/09/2002 12:09:53
|
DanielOliveira
Entusiasta Java
Membro desde: 01/09/2002 11:05:38
Mensagens: 22
Localização: Cuiabá-MT/Brazil
Offline
|
Ola André, o que o Guilherme falou me parece correto, tente tambem ao invez de usar o evento click do mouse usar o evento mousePressed, já tive um problema semelhante e isto resolveu.
Um abraço.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/09/2002 13:52:22
|
andre
Smalltalk
Membro desde: 02/09/2002 09:55:33
Mensagens: 3
Offline
|
Olá Guilherme e Daniel
Agradeço as boas vindas e a respostas de vc´s.
Tentarei fazer essa adaptação e posteriormente retornarei para vc´s o resultado, com certeza estarei perturbando vc´s um pouquinho, pois estou fazendo um trabalho voltado para a universidade cuja linguagem adotada será Java onde a minha experiência ainda é pouca.
mais uma vez obrigado,
AT+
Andre
andre wrote:Companheiros,
Estou buscando resolver um problema: Estou tentando criar um aplicativo gráfico em Java com as seguintes caracteristicas: Um Container principal e nesse container adiciono outros três containers (um para conter a barra de ferramentas horizontal, uma para vertical e um para a area de trabalho (onde adicionarei meus elementos do desenho) que é um painel de barra de rolagem. O meu problema consiste em:
1- o evento click do mouse parece não retornar a posição em relação ao container da área de trabalho de modo que tenho de fazer uma adaptação para resolver o problema, como fazer essa posição tomar como referência ao container apenas de desenho ?
2 - Ainda nos eventos do mouse e também de redesenhar (ao movimentar as imagens ou redimensionar a janela do aplicativo) preciso novamente ver os desenhos, porém, uso uma estrutura de dados para armazená-los e depois recuperá-los dentro do evento de redimensionar a janela, porém, observo que ele redesenha, mas logo em seguida ele é apagado. Pelo que me parece tanto quanto os eventos do mouse quanto ao desenho das imagens a referencia nao é o container da area de trabalho e sim ao container principal que contém os outros containers. Se isso e verdade, preciso achar uma solução para resolver este problema.
Se alguem tiver uma solução ou identificar qual o problema, gostaria de uma ajuda.
Desde ja agradeço
André
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/09/2002 04:33:21
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
sinta-se em casa... ou quase la
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
|
|
|
|