Problem mit Function.
lima-city → Forum → Programmiersprachen → Java
anweisung
applet
basteln
code
container
dank
datei
funktion
import
klasse
lange liste
rahmen
run
setzen
string
tag
type
url
verzeichnis
wissen
-
Ich wollte mir aus dem Script, der den Webscript parsern lässt in den Thread hier in der Nähe eine Function tag/basteln">basteln, aber schaffe es nicht. Ist mein erster Versuch, und habe auch nicht sonderlich viel Erfahrung in Java:
public class sendMain { public String website(String website) <- This method must return a result of type String { try { URL url = new URL(\"\" + website + \"\"); PhpPostConnect con = new PhpPostConnect(url); try { con.send(\"foo1=bar&foo2=bar2\"); return(con.read()); } catch (IOException e) { e.printStackTrace(); } } catch (MalformedURLException e) { e.printStackTrace(); } } }
Aber wenn ich es zu public URL website(String website) meldet Eclipse bei return(con.read()); Type mismatch: cannot convert from String to URL.
Kann mir wer bitte helfen?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Häh? Wo genau ist denn nun das Problem? con.read() liefert doch einen String zurück!?
-
Anscheinend, aber public String website(String website) meint This method must return a result of type String. Und meines Wissens sagt der erste String das ein String zurückgegeben wird.
-
Naja, dann setz dein return mal außerhalb der try Anweisung. Innerhalb der try ein return zu setzen ist meines Wissens nach überhaupt nicht erlaubt. setz oberhalb der try eine lokale variable die den String aufnimmt und übergib dieser den Rückgabewert von con.read() und am ende gibst du die lokale variable einfach per return zurück.
-
Danke. Stimmt das jetzt so:
import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; public class sendMain { String websitecache; public String website(String website) { try { websitecache = website; URL url = new URL(\"\" + websitecache + \"\"); PhpPostConnect con = new PhpPostConnect(url); try { con.send(\"foo1=bar&foo2=bar2\"); websitecache = con.read(); } catch (IOException e) { e.printStackTrace(); } } catch (MalformedURLException e) { e.printStackTrace(); } return websitecache; } }
Wenn ich schon nen Thread habe: Wie binde ich das jetzt eigendlich ein? So kann ich es nichtmehr ausführen. -
Ich sagte lokale Variable, nicht Klassen-Variable...
Es müsste schon wie folgt aussehen:
mport java.io.IOException; import java.net.MalformedURLException; import java.net.URL; public class sendMain { public String website(String website) { String websitecache; try { PhpPostConnect con = new PhpPostConnect(new URL(\"\" + website + \"\")); con.send(\"foo1=bar&foo2=bar2\"); websitecache = con.read(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return websitecache; } }
//edit: Hab den Code mal überarbeitet.
Beitrag geändert: 29.4.2008 16:51:25 von evil-devil -
Danke, funktioniert.
Kann ich denn eine Funktion aus einer anderen Class-Datei inclutieren?
Wenn ich dich richtig verstehe lautet die Antwort: ja, natürlich.
Falls die Klassen im selben Verzeichnis liegen ist keine Angabe erforderlich, sonst musst du beim kompilieren den classpath mitgeben und evtl imports+ packages definieren.
Mfg
Cel
-
OK, danke. Habe die letzten paar Tage damit rumexperimentiert aber es noch nicht ganz hinbekommen:
Main.java (Die Hauptdatei/classe):
public class Main extends Applet implements MouseListener { public void paint(Graphics g) { URL getDoc = getDocumentBase(); draw_rahmen draw = new draw_rahmen(); draw.paint(getDoc, g); } }
draw_rahmen (Die Datei die includet wird):
public class draw_rahmen extends Applet { public void paint(URL getDoc, Graphics g) { int drawImageX = 0; int i = 0; int breite = 20; g.drawImage(getImage(getDoc, \"img_rahmen/rahmen01.png\"), drawImageX, 0, this); drawImageX = drawImageX + 8; } }
Ist natürlich extrem gekürzt.
Die Klasse draw_rahmen soll einen Rahmen um den Content des Applets schreiben. Da der Inhalt aber extrem Variable ist geht das nicht auf einmal, wodurch eine lange Liste von draw_image-Behlen und for-Schleifen entsteht die ich eben gerne dorthin auslagern würde.
Aber ich erhalte follgenden Fehler beim Ausführen der Main:
Exception in thread \"AWT-EventQueue-1\" java.lang.NullPointerException at java.applet.Applet.getAppletContext(Unknown Source) at java.applet.Applet.getImage(Unknown Source) at java.applet.Applet.getImage(Unknown Source) at draw_rahmen.paint(draw_rahmen.java:13) at Main.paint(Main.java:51) at sun.awt.RepaintArea.paintComponent(Unknown Source) at sun.awt.RepaintArea.paint(Unknown Source) at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Wenn ich in der draw_rahmen getDoc mit getDocumentBase() austausche geht es dort. Aber ich will ja nicht auf die rahmen sondern die Main zeichnen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage