PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage an die Java-Profis



pinsel120866
04.04.2009, 14:06
Hallo,

Frage an die Java-Profis, ich habe folgenden Java Code:



/**
* @(#)Wifibot.java
*
* Sample Applet application
*
* @author
* @version 1.00 07/10/15
*/

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.Graphics2D;

public class Wifibot extends Applet {

Button Up_Button ;
Button Down_Button ;
Button Left_Button ;
Button Right_Button ;
Button Grab_Button;

int Port_Id = 10001;

TcpIP gtp=null;

BufferedImage Graphic_buffer=new BufferedImage(88,120,BufferedImage.TYPE_INT_ARGB);
int[] Tmp_graphic_Buffer=new int[88*120];


/***************************/
int x_pad=20;
int y_pad=140;


public void init()
{
setLayout(null);
gtp= new TcpIP(Port_Id,this);

//set the up left right down buttons

Up_Button = new Button("Up");
Up_Button.setBounds(x_pad+50,y_pad,40,40); // param int
Up_Button.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
gtp.send("UP0");
System.out.println("");
}
}
);
add(Up_Button);

Left_Button = new Button("Left");
Left_Button.setBounds(x_pad,y_pad+50,40,40);
Left_Button.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
gtp.send("LE0");
System.out.println("");
}
}
);
add(Left_Button);

Right_Button = new Button("Right");
Right_Button.setBounds(x_pad+100,y_pad+50,40,40); // param int
Right_Button.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
gtp.send("RI0");
System.out.println("");
}
}
);
add(Right_Button);

Down_Button = new Button("Down");
Down_Button.setBounds(x_pad+50,y_pad+100,40,40); // param int
Down_Button.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{
gtp.send("DO0");

byte[] in=null;

in=gtp.receive();

System.out.println("lenght ->"+in.length);

for(int i=0;i<in.length;i++)
{
System.out.println("lenght ->"+in[i]+'A');
}
}
}
);
add(Down_Button);

Grab_Button = new Button("Grab");
Grab_Button.setBounds(x_pad+180,y_pad+50,40,40); // param int
Grab_Button.addActionListener( new ActionListener()
{
public void actionPerformed( ActionEvent e )
{


gtp.send("RGB"); //send order to grab picture

int tmp=0;

gtp.send("RED");

byte[] in=null;

if (gtp.available()>0) in=gtp.receive(); //flush the input buffer

for (int k=0,j=0,i=0; k<120*88;)
{
in=gtp.receive();

for(j =0 ;j<in.length;j++)
{

tmp=(int)in[j];

if(tmp<0) tmp=256+tmp;

Tmp_graphic_Buffer[k++]=0xFF000000|tmp<<16|tmp<<8|tmp;
}

gtp.send("e");

}

repaint();
}
}
);
add(Grab_Button);


for (int i=0; i<120*88;i++)
{
Tmp_graphic_Buffer[i]=0xff808080;
}
}


public void paint(Graphics g)
{
Graphic_buffer.setRGB(0,0,88,120,Tmp_graphic_Buffe r,0,88);
g.drawImage(Graphic_buffer,x_pad+24,y_pad-130,null);
}
}

Wenn ich kompilieren will kommt:
Datei.java:42: cannot find symbol
symbol: class TcpIP
location: class Datei;

Die Datei TcpIP.class liegt im gleichen Verzeichnis.

Was fehlt hier?

linux_80
04.04.2009, 16:27
Hi,

zu welchem package gehört diese TcpIP-Klasse, hast Du davon die .java, dann brauchts normalerweise noch ein import des ganzen.

pinsel120866
04.04.2009, 17:26
Hallo,

ja, im gleichen Verzeichnis gibt es eine tcpip.java. Wie sieht dieser Import aus?

linux_80
04.04.2009, 17:31
Kannst Du die auch hier reinstellen,
mind. den Anfang bis zur class-Zeile ?!

Interessant wäre obs da 'ne package-Zeile gibt.

Was nimmst Du zum proggen, welche IDE ?

pinsel120866
04.04.2009, 17:42
Installiert habe ich Java SDK 6.13

Code:


import java.*;
import java.lang.*;
import java.net.*;
import java.util.*;
import java.io.*;
import java.applet.*;

public class TcpIP
{
protected Socket s = null;
public DataInputStream dis = null;
protected DataOutputStream dos = null;

InetAddress reader_ip = null;

public TcpIP(int port ,Applet a)
{
try

{
reader_ip = InetAddress.getByName(a.getCodeBase().getHost());
}
catch (UnknownHostException e){}

if (reader_ip != null) Connect(reader_ip, port);
}

public void Connect(InetAddress ipa, int port)
{
Socket s1 = null;
try { // Open the socket
s1 = new Socket(ipa.getHostAddress(), port);
}
catch (IOException e) {
System.out.println("Error opening socket");
return;
}
s = s1;
try { // Create an input stream
dis = new DataInputStream (new BufferedInputStream (s.getInputStream ()));
}
catch(Exception ex) {
System.out.println("Error creating input stream");
}
try { // Create an output stream
dos = new DataOutputStream (new BufferedOutputStream (s.getOutputStream ()));
}
catch(Exception ex) {
System.out.println("Error creating output stream");
}
}

public synchronized void disconnect()
{
if (s != null) {
try {
s.close();
}
catch (IOException e){}
}
}
public synchronized void send(byte[] temp)
{
try {
dos.write(temp, 0, temp.length);
dos.flush();
}
catch(Exception ex) {
System.out.println("Error sending data : " + ex.toString());
}
}
public synchronized void send(byte[] temp, int len)
{
try {
dos.write(temp, 0, len);

dos.flush();
}
catch(Exception ex) {
System.out.println("Error sending data : " + ex.toString());
}
}

public synchronized void send(String given)
{
// W ARNING : this routine may not properly convert Strings to bytes
int length = given.length();
byte[] retvalue = new byte[length];
char[] c = new char[length];
given.getChars(0, length, c, 0);
for (int i = 0; i < length; i++) {
retvalue[i] = (byte)c[i];
}
send(retvalue);

}

public synchronized byte[] receive()
{
byte[] retval = new byte[0];

try {
while(dis.available() == 0); /* Wait for data */
}
catch (IOException e){}
try {
retval = new byte[dis.available()];
} catch (IOException e){}
try {
dis.read(retval);
} catch (IOException e){}
return(retval);
}

public int available()
{
int avail;
avail = 0;
try {
avail = dis.available();
} catch (IOException e) {}

return(avail);
}
}

linux_80
04.04.2009, 17:54
Bei mir kann ich beide Dateien, so wie sie sind, ohne Fehler übersetzen, obs dann auch läuft weiss ich ned.

schaut dann Dateimässig so aus:

04.04.2009 17:50 2.775 TcpIP.class
04.04.2009 17:49 2.707 TcpIP.java
04.04.2009 17:50 667 Wifibot$1.class
04.04.2009 17:50 667 Wifibot$2.class
04.04.2009 17:50 667 Wifibot$3.class
04.04.2009 17:50 1.026 Wifibot$4.class
04.04.2009 17:50 877 Wifibot$5.class
04.04.2009 17:50 2.033 Wifibot.class
04.04.2009 17:49 3.398 Wifibot.java
9 Datei(en) 14.817 Bytes

passen die Dateinamen bei Dir auch mit der Klasse überein ?

pinsel120866
04.04.2009, 18:03
Sei bitte so gut und stelle mir deine übersetzen Datein gezippt hier rein.

linux_80
04.04.2009, 18:12
Wie gewünscht :

pinsel120866
04.04.2009, 18:16
Vielen Dank!

Ich habe die Codes aus einer Anleitung übernommen und wollte sie nur kompilieren.