Duas Classes conversando

16 respostas
A

Bom eu postei uma duvida no avançado porém achu q posso resolve-la com um código simples

gostaria de saber como se faz eu tenho duas classes uma aplet e uma main

toda vez que eu executo a main ela escreve

Bom dia

eu gostaria de executar a main e que ela escrevesse bom dia na applet

Tem como?

16 Respostas

G

sim voce instancia a applet no seu main ou em outra classe e fazer um metodo na aplet que recebe uma String por exemplo.

public void responde(String msg){
System.out.println(msg);
}

no main

Applet applet = new Applet();
applet.responde("Bom dia");
A

Bom não funcionou meu codigo ficou assim

Classe main

ola applet = new ola();   
         applet.responde("Bom dia");

e a ola assim

import java.applet.*;
import java.awt.*;
public class ola extends Applet
{
	public String Teste;
	
	public void responde(String msg){   
		//System.out.println(msg); 
		Teste = msg;
		}
	
public void paint(Graphics g) // chamando paint
{
g.setColor(Color.red);
g.drawString(Teste ,5,10);
}
}
A

o problema é que ele nao reconhece a segunda linha da main

applet.responde(“Bom dia”);

A

bome minha main ta assim

class MyJatXMLHandler  extends JatXMLHandler
{

	  ola applet = new ola();   
      applet.responde("Bom dia");

ela nao reconhece o “repsonde”

e a minha ola ta assim

import java.applet.*;
import java.awt.*;
public abstract class ola extends Applet
{
	public String Teste;
	
	public void responde(String msg){   
		//System.out.println(msg); 
		Teste = msg;
		}
	
public void paint(Graphics g) // chamando paint
{
g.setColor(Color.red);
g.drawString(Teste ,5,10);
}
}

eu coloquei o abstract pra veer se ajudava nao deu certo não

G

adrieldri:
bome minha main ta assim

class MyJatXMLHandler  extends JatXMLHandler
{

	  ola applet = new ola();   
      applet.responde("Bom dia");

ela nao reconhece o “repsonde”

e a minha ola ta assim

import java.applet.*;
import java.awt.*;
public abstract class ola extends Applet
{
	public String Teste;
	
	public void responde(String msg){   
		//System.out.println(msg); 
		Teste = msg;
		}
	
public void paint(Graphics g) // chamando paint
{
g.setColor(Color.red);
g.drawString(Teste ,5,10);
}
}

eu coloquei o abstract pra veer se ajudava nao deu certo não

importo o ola na sua classe main?

A

Desculpa estou começando agora como que importo ela pra main?

G

que nem do jeito que você faz pra importar o awt por exemplo, mas aqui qual erro que ta dando?
e seu main num seria o public void static main(String [] args)
nao?

A

Desculpe não é a main que esta chamando a função e sim essa acima que ja contem um extend

A

a minha classe main soh faz a conexao com meu servidor e acabou quem faz o resto essa outra que ja contem um extend

G

certo e qual erro que ta dando?

A

BOm antes de tudo ja quero agradece-lo pela ajuda

bem o erro que é esse

import OAJUtil.*;
import java.io.*;
import java.lang.System;
import java.util.LinkedList;
import java.util.*;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;


class MyJatXMLHandler  extends JatXMLHandler
{

	  ola applet = new ola();   
      applet.responde("Bom dia");

ele fala que nao sabe oque é RESPONDE

G
import ola;

da um import na classe ola que nem voce importou todas aquelas outras classes no caso voce pode pegar ali no olá e da um ctrl + espaço que ele vai fazer o import pro c, ou digitar se nao me engano shift + ctrl + o, não me lembro dos atalhos, mas o import tem que ser referenciado pelo pacote que ta a classe ola

A

Bom a Minha classe ola ja esta no mesmo pacote que a minha outra classe

o problema é que eu nao sei como faz pra minha classe reconhecer o metodo responde da minha classe ola

da erro sempre que tento usa-lo

A

esta aqui as duas classe no mesmo pacotel

Essa é a classe que eu uso junto com a ola

O problema acontece no começo na parte comentada

import OAJUtil.JatXML;
import OAJUtil.JatXMLHandler;

class MyJatXMLHandler  extends JatXMLHandler
{

	 ola applet = new ola();   
     // applet.responde("Bom dia");
	  
      
      
   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.setDestinationAddress(recMessage.getSourceAddress());
         //sendMessage.setDestinationAddress = 4444;
         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());
   }
}

E essa é a ola

import java.awt.*;

public class ola extends Applet
{
	public String Teste;
	
	public void responde(String msg){   
		//System.out.println(msg); 
		Teste = msg;
		}
	
public void paint(Graphics g) // chamando paint
{
g.setColor(Color.red);
g.drawString(Teste ,5,10);
}
}
G
import OAJUtil.JatXML;   
import OAJUtil.JatXMLHandler;   
  
class MyJatXMLHandler  extends JatXMLHandler   
{   
  
     ola applet = new ola();     
     // applet.responde("Bom dia");

entao cara c ta tentando acessar um metodo de outra classe ou seja você precisa importar essa classe pra essa sua classe entendeu?

import OAJUtil.JatXML;   
import OAJUtil.JatXMLHandler;   
import ola;
class MyJatXMLHandler  extends JatXMLHandler   
{   
  
     ola applet = new ola();     
     // applet.responde("Bom dia");
A

bom eu estou quase resolvendo utilizei uma variavel

PUblic static mensagem;

ela funcionou agora tenho outras duvidas que ficam mais pra frente

valeu!!!

Criado 25 de agosto de 2010
Ultima resposta 25 de ago. de 2010
Respostas 16
Participantes 2