Professional Documents
Culture Documents
Applet;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.LayoutManager;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.awt.GraphicsConfiguration;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FilePermission;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.security.Policy;
import java.util.Enumeration;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import com.sun.j3d.utils.behaviors.picking.PickRotateBehavior;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.geometry.Cone;
import com.sun.j3d.utils.geometry.NormalGenerator;
import com.sun.j3d.utils.geometry.Primitive;
import com.sun.j3d.utils.geometry.Sphere;
import com.sun.j3d.utils.geometry.Triangulator;
import com.sun.j3d.utils.geometry.GeometryInfo;
import com.sun.j3d.utils.image.TextureLoader;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.media.j3d.*;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.event.MouseInputListener;
import javax.vecmath.*;
import javax.swing.Timer;
import sun.security.provider.PolicyFile;
import java.awt.Toolkit;
public class Viewer extends Applet implements ActionListener
{
ModelViewer Wnd3d;
ModelX=0;
ModelY=0;
ModelZ=2;
this.setBackground(new Color(0,0,200));
this.setBounds(0, 0, ProgramWidth, ProgramHeight);
this.setLayout(null);
Wnd3d = new
ModelViewer(0,0,ThreeDWidth,ThreeDHeight,ModelLocationArray,TextureArray,AdressTyp
e);
this.add(Wnd3d);
Wnd3d.ModelType = ModelType;
layout.addLayoutComponent("gamewindow", Wnd3d);
Wnd.leftBtn.SetMyListener(this);
Wnd.rightBtn.SetMyListener(this);
Wnd.upBtn.SetMyListener(this);
Wnd.downBtn.SetMyListener(this);
Wnd.inBtn.SetMyListener(this);
Wnd.outBtn.SetMyListener(this);
/*this.AddListener(new Listener(){ public void ButtonEvent(String e)
{
System.out.println("event:"+e);
Event(e);
} });*/
RotationTimer.start();
}
@Override
public void actionPerformed(ActionEvent e) {
if (TimerMode == "Rotate")
{
if (RotationAxis == "X"){Wnd3d.ModelRotX += 0.1;}
else if (RotationAxis == "Y"){Wnd3d.ModelRotY += 0.1;}
else if (RotationAxis == "Z"){Wnd3d.ModelRotZ += 0.1;}
Wnd3d.RotateModel(Wnd3d.ModelRotX,Wnd3d.ModelRotY,Wnd3d.ModelRotZ,
Wnd3d.SceneActions);
}
if (MotionDir != "null"){Event(MotionDir);}
}
}
this.add(rightBtn);
this.add(leftBtn);
this.add(upBtn);
this.add(downBtn);
this.add(inBtn);
this.add(outBtn);
}
}
class MyButton extends Canvas implements KeyListener,MouseInputListener{
public HttpImageLoader Imager;
public Rectangle rec;
public Dimension size;
BufferedImage img = null;
public Image imidz;
WindowEvent we;
public Image Ico,IcoOver,IcoDown,CurrentImage;
public Viewer MyListener;
public String Event;
public Object[] testListener = new Object[3];
public MyButton(int x,int y,int width,int height,String event)
{
Event = event;
Imager = new HttpImageLoader();
Ico = null;
IcoOver = null;
CurrentImage = null;
//leftBtnImg
=Toolkit.getDefaultToolkit().createImage(Imager.GetImageBytesOverHttp("http://192.
168.1.70/Images/terrain.png"));
//this.addKeyListener(this);
//try {
// img = ImageIO.read(new File("E:\\Documents and
Settings\\Rainer\\Desktop\\pilt.png"));
//} catch (IOException e) {
//}
//setBackground(new Color(255,0,0));
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
MyListener.Event(Event);
this.repaint();
//FireEvent();
}
@Override
public void mouseEntered(MouseEvent e) {
CurrentImage = IcoOver;
this.repaint();
}
@Override
public void mouseExited(MouseEvent e) {
CurrentImage = Ico;
this.repaint();
}
@Override
public void mousePressed(MouseEvent e) {
((Viewer)(this.getParent().getParent())).MotionDir = Event;
((Viewer)(this.getParent().getParent())).RotationTimer.stop();
((Viewer)(this.getParent().getParent())).MotionTimer.start();
}
@Override
public void mouseReleased(MouseEvent e) {
((Viewer)(this.getParent().getParent())).MotionDir = "null";
((Viewer)(this.getParent().getParent())).MotionTimer.stop();
((Viewer)(this.getParent().getParent())).RotationTimer.start();
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
}
class HttpImageLoader extends Object
{
public HttpImageLoader()
{
}
public Image GetImageOverHttp(String adress)
{
URL url = null;
URLConnection urlConn;
DataInputStream dis;
return
Toolkit.getDefaultToolkit().createImage(GetImageBytesOverHttp(adress));
}
public byte[] GetImageBytesOverHttp(String adress)
{
URL url = null;
URLConnection urlConn;
DataInputStream dis;
byte[] FileContent=null;
try
{
url = new URL(adress);
urlConn = url.openConnection();
urlConn.setDoInput(true);
urlConn.setUseCaches(false);