Interface Gráfica

11 respostas
Heero

o único jeito de eu colocar imagens na tela (carro.gif, etc) eh através do método paintComponent???

public void paintComponent(Graphics comp)
{
}

11 Respostas

danieldestro

ImageIcon icon = new ImageIcon( “imagem.gif” );
JLabel l = new JLabel( icon );

cv1

Nao, o bom e velho JLabel tambem pode ser usado :wink:

Heero

E eu posso colocar esse JLabel (imagem.gif) em qualquer lugar da tela com eventos do click do Mouse? e tbm setar o tamanho da imagem?

danieldestro

Com certeza!

Dá uma lida aqui: http://java.sun.com/docs/books/tutorial/uiswing/misc/icon.html

Heero

entendi! obrigado!
me explica uma coisa qual a diferença entre:

1-

public void paint(Graphics tela) 
 {}

2-

public void paintComponent(Graphics comp) 
{ 
}

3-

public void paintComponent(Graphics comp)
{
   Graphics2D tela = (Graphics2D)comp;
}
danieldestro

Boa pergunta! :lol:

cv1

1 - método antigo da AWT. Use paintComponent.
2 - erhm, paintComponent.
3 - erhm, paintComponent.

2 e 3 nao tem diferenca.

Heero

mas quais são as diferenças? o q um tem a mais q o outro não tem?
por q vc colocou erhm, vc acha q eles são ruins? por q?

Heero

essas perguntas são complicadas mesmo, eu sempre me pergunto por elas…, se vcs descobrirem por favor me respondam…
vamos deixar elas de lado por enquanto… e me ajudem num problema…

Qual eh mais interessante, melhor de mexer com imagens, o metodo:

public void paintComponent(Graphics comp) 
{ 
}

ou o JLabel??? para a seguinte situação, colocar um tanto de imagens na tela e depois poder mexer elas pra qualquer lugar…, clicar nelas com um JpopopMenu, soh q mais pra frente eu vou ter que ligar elas com uma linha…
qual a melhor opção e por q?

Obrigado!
Agradeço muito se me ajudarem!!
qualquer ajuda eh valida!

Eduardo_Bregaida

“Heero”:
essas perguntas são complicadas mesmo, eu sempre me pergunto por elas…, se vcs descobrirem por favor me respondam…
vamos deixar elas de lado por enquanto… e me ajudem num problema…

Qual eh mais interessante, melhor de mexer com imagens, o metodo:

public void paintComponent(Graphics comp) 
{ 
}

ou o JLabel??? para a seguinte situação, colocar um tanto de imagens na tela e depois poder mexer elas pra qualquer lugar…, clicar nelas com um JpopopMenu, soh q mais pra frente eu vou ter que ligar elas com uma linha…
qual a melhor opção e por q?

Obrigado!
Agradeço muito se me ajudarem!!
qualquer ajuda eh valida!


Na minha opinião o JLabel seria uma melhor opção. Mas isso varia de pessoa para pessoa…

Heero

como eu trabalho na base do quebra a cara, programo tendo muito pouco exemplos...
eu nunca vi um programa de arrastar imagem (codigo), tentei algumas coisas aki e não resolvi o problema...


alguém saberia como que eu faço pra arrastar uma imagem de uma posição para outra?

segue um trecho de código puro, pra ajudar a me ajudarem...

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;

public class Simulador extends JApplet 
{
 // executado somente quando for uma applet
 public void init()
 {
  PainelSimulador painel = new PainelSimulador();
  getContentPane().add(painel, BorderLayout.CENTER);
 }
    
 // executado somente quando for uma aplicação
 public static void main(String[] args)
 {
  JFrame janela = new JFrame("Programa");
  janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
  PainelSimulador painel = new PainelSimulador();
  janela.getContentPane().add(painel, BorderLayout.CENTER);
  janela.setSize(new Dimension(600, 480));
  janela.setVisible(true); 
  
 }
 
}
import java.awt.*;
import java.applet.*;
import javax.swing.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import java.util.*;
import java.net.URL;

public class PainelSimulador extends JPanel
{
 // definição de objetos	
 
 Image computador1, hub1, switch1;
 
 int xMouse;
 int yMouse;
 
 
 public PainelSimulador()
 {
  Toolkit kit = Toolkit.getDefaultToolkit();
  
  URL Imagem = PainelSimulador.class.getResource("imagem.gif"); 
  
  // pega as imagens
  imagem = kit.getImage(Imagem);
  
  // eventos do mouse
  addMouseListener(new MouseAdapter()
  {
   public void mousePressed(MouseEvent evento)
   {
   	if(evento.getButton() == evento.BUTTON1){ 
     //... executa algo com o botão esquerdo 
     
     // pega as posições atuais de X e Y
     xMouse = evento.getX();
     yMouse = evento.getY();
          
     repaint();    
    } //fim do botão esquerdo
    
   }// fim do mouse pressed
   	
   public void mouseDragged(MouseEvent evento)
   { 
	
   }
   
   	
   
  });
 
}
  
  
  public void paintComponent(Graphics comp)
  {
  	
   Graphics2D tela = (Graphics2D)comp;
   
   tela.drawImage(imagem,xMouse, yMouse,50,50, this);    
          
  }//fim do metodo PaintComponent
  
          

}// FIM da classe Painel Simulador
[/b]
Criado 27 de abril de 2004
Ultima resposta 8 de mai. de 2004
Respostas 11
Participantes 4