Classes em pastas diferentes

8 respostas
A

Bom dia!!!

Bom estou com um problema eu tenho 2 classes uma applet e uma visual

Elas estão em pastas diferentes por exmplo

-----------Client --------------CLaaase 1

Pasta Centarl
-----------Public----------------Applet

E elas precisam se comunicar como que eu faço isso???

8 Respostas

A

Elas tem que ficar nesta estrutura devido ao meu servidor ser asssim

Client = Pasta .Class

Public = Applet.class

paulo1911

Olá adrieldri,

Para resolver seu problema, pesquise um pouco sobre controle de acesso e modificador de acesso a classes em java.

No seu caso, quando vc cria uma classe, essa classe deve estar em um pacote Ex br.com.meupacote.

quando vc cria uma classe vc deve declarar a qual pacote ela vai estar, no caso um exemplo, seria

[code]
package br.com.meupacote; // aqui eu defino que minha classe MyClass é do pacote br.com.meupacote.
public class MyClass {

...
// mais métodos e atributos

}/* Outro detalhe importante é que c vc quer poder instanciar essa classe em um método de outra classe que está em outro pacote, vc vai precisar marcar essa classe como publica : public class MyCass {}; Caso contrario ela ssomente poderá ser instanciada e acessada em classes do mesmo pacote ou no seu caso mesmo diretório. */
[code]

Marque sua classe como public e na classe do outro pacote use o import para vc poder acessá-la corretamente ok!

espero ter ajudado.
estou a disposição
falow

A

Antes de tudo muito obrigado mesmo é isso que estou precisando mas ainda nao ta dando certo ele nao reocnhece comando package

vou posta minhas duas classes

Se puder ajuda agradeço muito eu sou novo e ja estou pesquisando sobre package

Eu tentei colocar package abaixo do import
Classe1

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.StringWriter;
import java.io.Writer;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.Text;

import OAJUtil.JatLog;
import OAJUtil.JatResponse;
import OAJUtil.JatXML;
import OAJUtil.JatXMLHandler;

public class MyJatXMLHandler  extends JatXMLHandler
{
	
   
	 //ola applet = new ola();   
     // applet.responde("Bom dia");
	  
      
   
   public static String usuario = "Adriel Legal";  
   private DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
   private TransformerFactory tFactory = TransformerFactory.newInstance();
   
   private String XMLToString(Node appNode) throws TransformerException 
   {
      StringWriter sw = new StringWriter();
      XmlSerializer(appNode, sw);
      return sw.toString();
      
   }

   private void XmlSerializer(Node appNode, Writer writer) throws TransformerException
   {
      StreamResult result = new StreamResult(writer);
      Transformer transformer = tFactory.newTransformer();
      transformer.setOutputProperty(OutputKeys.ENCODING,"UTF-8");
      transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
//      transformer.setOutputProperty(OutputKeys.INDENT, "yes");
      DOMSource source = new DOMSource(appNode);
      transformer.transform(source, result);
   }

   public void Init()
   {
      // Enable use of alarm service
      AddService("Alarm");
   }

   private Element createElement(Document doc, String elementName, String containText)
   {
      Element elem = doc.createElement(elementName);
      Text elemText = doc.createTextNode(containText);
      elem.appendChild(elemText);
      return elem;
   }

   public static Node getFirstChildElementByName(Node node, String name) 
   {
      if (node == null)
      {
         return null;
      }

      Node child = node.getFirstChild();
      while (child != null)
      {
         if (child.getNodeType() == Node.ELEMENT_NODE && child.getNodeName().equals(name))
         {
            return child;
         }
         child = child.getNextSibling();
      }

      return null;
   }

   public static String getNodeValue(Node node)
   {
      if (node == null)
      {
         return "";
      }

      if (node.getNodeType() == Node.ELEMENT_NODE)
      {
         Node child = node.getFirstChild();
         if (child == null)
         {
            return "";
         }
         else
         {
            return child.getNodeValue();
         }
      }

      return "";
   }

   public void onXML(JatXML recMessage)
   {
      try
      {
      	
      	
         JatLog.writeTempLog("OA-xml received: " + recMessage.getXml());
         
         DocumentBuilder docBuilder = factory.newDocumentBuilder();
         InputStream is = new ByteArrayInputStream(recMessage.getXml().getBytes("UTF-8"));
         Document recDoc = docBuilder.parse(is);


/*  Sample alarm message

<service version="1.0">
  <Id>2</Id>
  <Alarm>
    <Type>0</Type>
    <Time>09:05:08:10:30:00</Time>
    <Data>1234</Data>
    <Description>A</Description>
    <Location_Data>
      <Location>
        <Code>00103</Code>
        <Type>Undefined location</Type>
        <Time>10</Time>
        <Data>Text</Data>
        <Description>Lunch room</Description>
        <Triggered/>
      </Location>
    </Location_Data>
  </Alarm>
</service>
*/


         // Handle the received service...
         Node typeNode = getFirstChildElementByName(recDoc.getDocumentElement(), "Alarm");
         typeNode = getFirstChildElementByName(typeNode, "Type");

         // Reply back with a simple paging

/* 
Message that shall be created and sent:

<service version="1.0">
  <Message>
    <Subject>Subject Text</Subject>
    <Body>Body Text</Body>
  </Message>
</service>
*/

         Document sendDoc = docBuilder.newDocument();

         Element serviceElem = sendDoc.createElement("service");
         sendDoc.appendChild(serviceElem);
         Attr attr = sendDoc.createAttribute("version");
         attr.setNodeValue("1.0");
         serviceElem.setAttributeNode(attr);

         Element messageElem = sendDoc.createElement("Message");
         serviceElem.appendChild(messageElem);
         messageElem.appendChild(createElement(sendDoc, "Subject", "Alarme recebido"));
         messageElem.appendChild(createElement(sendDoc, "Body", "Tipo: " + getNodeValue(typeNode))) ;
        
         // Transform xml to string
         String strOAXml = XMLToString(serviceElem);
         
         JatXML sendMessage = new JatXML();
         sendMessage.setXml(strOAXml);
         sendMessage.setDestinationAddrFromCallId("4444");
         //usuario = getNodeValue(typeNode); 
         sendMessage.send();
         
       
         
         JatLog.writeTempLog("Adriel: " + recMessage.getSourceAddress());
         JatLog.writeTempLog("OA-xml sent: " + strOAXml);
      }
      catch (Exception e)
      {
         JatLog.writeTempLog("Failed to handle XML: " + e);
      }
   }

   public void onResponse(JatResponse response)
   {
      if (response.getStatusCode() >= 400)
      {
         JatLog.writeTempLog("Error USD response received");
      }
   }


   public void onSendSuccess(JatXML xml)
   {
   }

   public void onSendError(JatXML xml)
   {
      JatLog.writeTempLog("XML Received OnSendError on block with ID: " + xml.getID());
   }
}

Applet

import java.applet.*;
import java.awt.*;

public class ola extends Applet
{
	
	public String usuario = MyJatXMLHandler.usuario;  
	
	
public void paint(Graphics g) // chamando paint
{
g.setColor(Color.red);
g.drawString(usuario ,5,10);
}
}
A

Ah vale lembra que meu servidor é assim]

A primeira classe eu quero que fique nesse caminho

192.168.0.89/www/Client

e a Applet

192.168.0.89/www/Public

A

Bom eu ja coloquei elas no seus devidos pacotes agora como eu ceto que esse pacote o caminho dele é meu servidor

192.168.0.89/www/Client

E segunda Hiptse caso nao abra porque meu servidor tenha senha algo do tipo tem outro jeito ?

paulo1911

Certo mas vc deve colocar a declaração package na primeira linha do aquivo da sua classe

package Client;

// imports aqui em diante...

public class SuaClasse{

}

no arquivo da applet mesma coisa.

paclage Public;

// imports aqui...

OK!

A

Belza ja coloquei e ja esta funcionando agora soh falta eu cetar o caminho do servidor

o Eclipse ja fez todo resto pra mim

A

Aluqme teria uma ideia tentei de tudo

Criado 27 de agosto de 2010
Ultima resposta 27 de ago. de 2010
Respostas 8
Participantes 2