I wanna to add MouseListener into this example for rotate or scale 3D object in canvas
the code is
package org.bm;
import java.awt.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import com.threed.jpct.*;
import com.threed.jpct.util.*;
public class CarDemo extends JFrame {
World world;
Camera camara;
FrameBuffer buffer;
Texture colores[];
KeyMapper mapaTeclas;
Canvas canvasRender;
ThreadRender render;
/** Creates new form AutoFrame */
public CarDemo() {
Config.maxPolysVisible = 20000;
Config.farPlane = 12000;
Config.glMipmap = false;
Config.glForceEnvMapToSecondStage = true;
initComponents();
setTitle("test");
world = new World();
world.setAmbientLight(120, 120, 120);
world.addLight(new SimpleVector(0, -30, 0), 20, 20, 20);
camara = world.getCamera();
camara.setPosition(10, -5, -8);
camara.lookAt(new SimpleVector(0, 0, 0));
buffer = new FrameBuffer(600, 400,
FrameBuffer.SAMPLINGMODE_NORMAL);
buffer.disableRenderer(IRenderer.RENDERER_SOFTWARE);
buffer.enableRenderer(IRenderer.RENDERER_OPENGL);
canvasRender = buffer.enableGLCanvasRenderer(IRenderer.RENDERER_OPENGL);
mapaTeclas = new KeyMapper(canvasRender);
pnl_Canvas.add(canvasRender);
render = new ThreadRender(world, buffer, mapaTeclas, canvasRender);
render.OGL = true;
render.start();
colores = new Texture[8];
colores[0] = new Texture("Auto/Texturas/ROJO.JPG");
colores[1] = new Texture("Auto/Texturas/AZUL.JPG");
colores[2] = new Texture("Auto/Texturas/VERDE.JPG");
colores[3] = new Texture("Auto/Texturas/NEGRO.JPG");
colores[4] = new Texture("Auto/Texturas/TOMATE.JPG");
colores[5] = new Texture("Auto/Texturas/AMARILLO.JPG");
colores[6] = new Texture("Auto/Texturas/GRIS.JPG");
colores[7] = new Texture("Auto/Texturas/BLANCO.JPG");
}
private void initComponents() {
btn_blanco = new JButton();
btn_gris = new JButton();
pnl_Canvas = new JPanel();
btn_amarillo = new JButton();
btn_negro = new JButton();
btn_verde = new JButton();
btn_azul = new JButton();
btn_rojo = new JButton();
btn_tomate = new JButton();
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(1, 10, 2, 2));
getContentPane().setLayout(new BorderLayout());
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
btn_blanco
.setIcon(new javax.swing.ImageIcon("Auto/Texturas/BLANCO.JPG"));
btn_blanco.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
btn_blancoMouseReleased(evt);
}
});
buttonPanel.add(btn_blanco);
btn_gris.setIcon(new javax.swing.ImageIcon("Auto/Texturas/GRIS.JPG"));
btn_gris.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
btn_grisMouseReleased(evt);
}
});
buttonPanel.add(btn_gris);
pnl_Canvas.setBorder(new javax.swing.border.EtchedBorder());
this.getContentPane().add(pnl_Canvas, BorderLayout.CENTER);
btn_amarillo.setIcon(new javax.swing.ImageIcon(
"Auto/Texturas/AMARILLO.JPG"));
btn_amarillo.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
btn_amarilloMouseReleased(evt);
}
});
buttonPanel.add(btn_amarillo);
btn_negro.setIcon(new javax.swing.ImageIcon("Auto/Texturas/NEGRO.JPG"));
btn_negro.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
btn_negroMouseReleased(evt);
}
});
buttonPanel.add(btn_negro);
btn_verde.setIcon(new javax.swing.ImageIcon("Auto/Texturas/VERDE.JPG"));
btn_verde.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
btn_verdeMouseReleased(evt);
}
});
buttonPanel.add(btn_verde);
btn_azul.setIcon(new javax.swing.ImageIcon("Auto/Texturas/AZUL.JPG"));
btn_azul.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
btn_azulMouseReleased(evt);
}
});
buttonPanel.add(btn_azul);
btn_rojo.setIcon(new javax.swing.ImageIcon("Auto/Texturas/ROJO.JPG"));
btn_rojo.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
btn_rojoMouseReleased(evt);
}
});
buttonPanel.add(btn_rojo);
btn_tomate
.setIcon(new javax.swing.ImageIcon("Auto/Texturas/TOMATE.JPG"));
btn_tomate.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent evt) {
btn_tomateMouseReleased(evt);
}
});
buttonPanel.add(btn_tomate);
this.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
this.setSize(600, 600);
}
private void btn_verdeMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btn_verdeMouseReleased
// Add your handling code here:
render.texturaActual = colores[2];
render.cambiarTextura("Base");
canvasRender.requestFocus();
}
private void btn_negroMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btn_negroMouseReleased
// Add your handling code here:
render.texturaActual = colores[3];
render.cambiarTextura("Base");
canvasRender.requestFocus();
}
private void btn_tomateMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btn_tomateMouseReleased
// Add your handling code here:
render.texturaActual = colores[4];
render.cambiarTextura("Base");
canvasRender.requestFocus();
}
private void btn_amarilloMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btn_amarilloMouseReleased
// Add your handling code here:
render.texturaActual = colores[5];
render.cambiarTextura("Base");
canvasRender.requestFocus();
}
private void btn_grisMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btn_grisMouseReleased
// Add your handling code here:
render.texturaActual = colores[6];
render.cambiarTextura("Base");
canvasRender.requestFocus();
}
private void btn_blancoMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btn_blancoMouseReleased
// Add your handling code here:
render.texturaActual = colores[7];
render.cambiarTextura("Base");
canvasRender.requestFocus();
}
private void btn_azulMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btn_azulMouseReleased
render.texturaActual = colores[1];
render.cambiarTextura("Base");
canvasRender.requestFocus();
}
private void btn_rojoMouseReleased(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btn_rojoMouseReleased
render.texturaActual = colores[0];
render.cambiarTextura("Base");
canvasRender.requestFocus();
}
/** Exit the Application */
private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
render.salir = true;
render.stop();
render = null;
System.exit(0);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
new CarDemo().show();
}
private javax.swing.JButton btn_blanco;
private javax.swing.JButton btn_gris;
private javax.swing.JPanel pnl_Canvas;
private javax.swing.JButton btn_amarillo;
private javax.swing.JButton btn_negro;
private javax.swing.JButton btn_verde;
private javax.swing.JButton btn_azul;
private javax.swing.JButton btn_rojo;
private javax.swing.JButton btn_tomate;
}
can you give me a example
thanks a lot