-         

Ergebnis 1 bis 9 von 9

Thema: Frage an die Java-Profis

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    51
    Beiträge
    847

    Frage an die Java-Profis

    Anzeige

    Hallo,

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

    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_Buffer,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?

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hi,

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

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    51
    Beiträge
    847
    Hallo,

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

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    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 ?

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    51
    Beiträge
    847
    Installiert habe ich Java SDK 6.13

    Code:
    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);
    }
    }

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    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:
    Code:
    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 ?

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    51
    Beiträge
    847
    Sei bitte so gut und stelle mir deine übersetzen Datein gezippt hier rein.

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Wie gewünscht :
    Angehängte Dateien Angehängte Dateien

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    51
    Beiträge
    847
    Vielen Dank!

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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •