Resolução Exercício 12.28 Como Programar Java(Deitel) Edição 4

2 respostas
bvaladao

E aí Galera, consegui fazer uma coisa, mas ta dificil, voces podem me ajudar?
Olha o meu código:
Produção de efeito “Elástico”, quando o usuário arrasta o mouse o tamanho do retangulo aumenta ou diminui dependendo as regioes que ele arrastar.Igual na area de trabalho do windows que fica um retangulo pontilhado wusndo vc faz isso.Obrigado

package exe1228;

import java.awt.BorderLayout;

import java.awt.Graphics;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;

import javax.swing.JLabel;

/**
*

  • @author breno
    */
    public class MouseTracker extends JFrame implements MouseListener, MouseMotionListener {

    private JLabel statusBar,  area;
    
    public String tipoDesenho;
    
    public int x,  y,  a,  l;
    
    public MouseTracker() {
    
    super(Demonstração dos eventos do Mouse.”);
    
    statusBar = new JLabel();
    
    area = new JLabel();
    
    getContentPane().add(statusBar, BorderLayout.SOUTH);
    
     addMouseListener(this);
     addMouseMotionListener(this);
    
     setSize(275, 100);
     setVisible(true);
    

    }

    @Override
    public void paint(Graphics g) {

    super.paint(g);
     g.drawRect(x, y, l, a);
    

    }

    public void mouseClicked(MouseEvent event) {
    
    statusBar.setText("Clicado a [  " + event.getX() + , + event.getY() + ]);
    
    }
    
    public void mousePressed(MouseEvent event) {
    
    statusBar.setText("Pressionado a [  " + event.getX() + , + event.getY() + ]);
    
    x = event.getX();
    
    y = event.getY();
    
    }
    
    public void mouseReleased(MouseEvent event) {
    
    if (event.getX() > x && event.getY() > y) {
    
    l = event.getX() - x;
    
    a = event.getY() - y;
    
    }
     if (event.getX() < x && event.getY() < y) {
         l = x - event.getX();
         a = y - event.getY();
    
     }
     repaint();
    

    }

    public void mouseEntered(MouseEvent event) {
    
    statusBar.setText(Mouse Dentro da janela);
    
    }
    
    public void mouseExited(MouseEvent event) {
    
    statusBar.setText(Mouse Fora da janela);
    
    }
    
    public void mouseDragged(MouseEvent event) {
    
    statusBar.setText(Arrastado a [” + event.getX() + “,” + event.getY() + “]”);
    
    if (event.getX() > x && event.getY() > y) {
    
    l = event.getX() - x;
    
    a = event.getY() - y;
    
    }
     if (event.getX() < x && event.getY() < y) {
         l = x - event.getX();
         a = y - event.getY();
     }
     repaint();
     System.out.println("Largura :" + l + "\n");
     System.out.println("Altura :" + a);
    

    }

    public void mouseMoved(MouseEvent event) {
    
    statusBar.setText(Movido a [ + event.getX() + , + event.getY() + ]);
    
    }
    
    public static void main(String args[]) {
    
    MouseTracker aplicacao = new MouseTracker();
    
    aplicacao.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    }
    
    }
    

2 Respostas

B

maneiro cara, porém edita o seu post e coloca todo o código entre as tags [code] e depois fecha [*/code] (sem o asterisco)
assim fica mais facil para leitura do código e para entender!

Parabens Obrigado

bvaladao
bvaladao:
E aí Galera, consegui fazer uma coisa, mas ta dificil, voces podem me ajudar? Olha o meu código: Produção de efeito "Elástico", quando o usuário arrasta o mouse o tamanho do retangulo aumenta ou diminui dependendo as regioes que ele arrastar.Igual na area de trabalho do windows que fica um retangulo pontilhado wusndo vc faz isso.Obrigado
package exe1228;

import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 *
 * @author breno
 */
public class MouseTracker extends JFrame implements MouseListener, MouseMotionListener {

    private JLabel statusBar,  area;
    public String tipoDesenho;
    public int x,  y,  a,  l;

    public MouseTracker() {
        super("Demonstração dos eventos do Mouse.");
        statusBar = new JLabel();
        area = new JLabel();

        getContentPane().add(statusBar, BorderLayout.SOUTH);

        addMouseListener(this);
        addMouseMotionListener(this);

        setSize(275, 100);
        setVisible(true);
    }

    @Override
    public void paint(Graphics g) {

        super.paint(g);
        g.drawRect(x, y, l, a);
    }

    public void mouseClicked(MouseEvent event) {
        statusBar.setText("Clicado a [  " + event.getX() + "," + event.getY() + "]");
    }

    public void mousePressed(MouseEvent event) {
        statusBar.setText("Pressionado a [  " + event.getX() + "," + event.getY() + "]");
        x = event.getX();
        y = event.getY();
    }

    public void mouseReleased(MouseEvent event) {
        if (event.getX() > x && event.getY() > y) {
            l = event.getX() - x;
            a = event.getY() - y;

        }
        if (event.getX() < x && event.getY() < y) {
            l = x - event.getX();
            a = y - event.getY();

        }
        repaint();
    }

    public void mouseEntered(MouseEvent event) {
        statusBar.setText("Mouse Dentro da janela");
    }

    public void mouseExited(MouseEvent event) {
        statusBar.setText("Mouse Fora da janela");
    }

    public void mouseDragged(MouseEvent event) {
        statusBar.setText("Arrastado a [" + event.getX() + "," + event.getY() + "]");
        if (event.getX() > x && event.getY() > y) {
            l = event.getX() - x;
            a = event.getY() - y;

        }
        if (event.getX() < x && event.getY() < y) {
            l = x - event.getX();
            a = y - event.getY();
        }
        repaint();
        System.out.println("Largura :" + l + "\n");
        System.out.println("Altura :" + a);

    }

    public void mouseMoved(MouseEvent event) {
        statusBar.setText("Movido a [" + event.getX() + "," + event.getY() + "]");
    }

    public static void main(String args[]) {
        MouseTracker aplicacao = new MouseTracker();
        aplicacao.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
Criado 5 de agosto de 2008
Ultima resposta 5 de ago. de 2008
Respostas 2
Participantes 2