Odec
-
Gesamte Inhalte
11 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Odec
-
-
danke für deine antwort und sorry das ich so spät erst darauf reagiere.
habe es auf deine art realisiert bekommen mit:
new java("java.util.Vector", array(1,2,3)) ^^
nur das ich selbst drauf gekommen bin durchn artikel in einer php-magazine ausgabe.
die ganze sache baut auf einer php-applikation auf und meine vorgaben waren es halt somit nur php und java zu verwenden, kein jsp...
nunja hat ja nun geklappt, vielen dank nochma.
Gruß
Odec
-
Hi, ich komm am besten gleich zur Sache:
ich habe ein Problem mit der Arrayübergabe als Parameter von PHP zu Java mittls der oben genannten Bridge...
leider gibt es dazu kaum Infos Zendseitig...
folgenden Schnippsel konnte ich dem Zend User Guide PDF entnehmen:
"In PHP, arrays and hashtables are used interchangeably. This is because in PHP
hashtables are indexed by integers or strings—not by objects. In Java, the key and
value must be objects to be associated, so primitive types have to be converted to
objects first, before parsing.
In Zend Platform’s Java interface, if a method returns Array/Hashtable, it is
immediately translated into a PHP native array/hashtable type. This means that if you want to work with a Java array/hash from PHP you cannot preserve it as a Java
object. Of course, the contents are preserved, but the object identity is lost. In such a
case, when an array/hash is returned, you will lose the ability to use Java methods
since the array/hash loses the object identity and becomes a regular PHP array.
To deal with Array/Hashtable objects originating in Java:
Implement the code dealing with the array in Java and then call it from PHP, or
encapsulate the object in a different class.
Note:
Method names in PHP are not case sensitive. For this reason array/hashtable refers to the
PHP type, while Array/Hashtable refers to the Java object."
ich möchte im Grunde nur ein Array mit Strings von PHP zum JAVA-Objekt übergeben.
jedoch akzeptiert die JAVA-Klasse den Parameter nicht als:
String arrayname[] , Vector arrayname oder Hashtable arrayame...
vielleicht mache ich auch in Java irgendetwas grundlegend falsch, jedoch wüsste ich nicht was....
ich hoffe das mir hier jemand helfen kann,
Vielen Dank im voraus!
Odec
PS:
Zend PDF: http://www.zend.com/support/user_docs/ZendPlatform/Zend_Platform_User_Guide.pdf
-
Hi, kann mir jemand vielleicht ein gutes Einstiegstutorial für AJAX/JSON empfehlen?
danke.
Odec
-
vielen dank, bin auch gerade vor 2minuten auf der site gelandet, werde erstma lesen und verstehen
melde mich bei fragen, danke
-
Hi, ich muss für die Berufschule ein Referat über "Border-Layout" halten, da ich jedoch auch generell nicht viel Ahnung von JAVA habe, scheint es sich für mich ein wenig schwer zu gestalten.
Ich finde auch leider nicht viel über dieses Thema, herausgefunden habe ich das man es auch Layout-Manager nennt, dann habe ich dieses Referat gefunden:
http://pool1.rz.fhtw-berlin.de/LV_oom_1_ws0304/referate/Layoutmanager-Dateien/frame.htm
und eine kurze definition:
BorderLayout verteilt die Dialogelemente nach Vorgabe des Programms auf die vier
Randbereiche und den Mittelbereich des Fensters.
kennt jemand vielleicht ne Quelle oder kann mir mehr zum Thema sagen?
Vielen dank im voraus
Odec
//EDIT:
und das hier noch:
Border Layout
Die Klasse BorderLayout definiert einen Layout Manager, der fünf feste Positionen kennt: eine Zentralposition, und jeweils links/rechts und oberhalb/unterhalb der Zentralposition eine Position für Unterkomponenten. Die Methode add kann in diesem Layout auch noch mit einem zweitem Argument aufgerufen werden, das eine dieser fünf Positionen angibt. Hierzu bedient man sich der konstanten Felder der Klasse BorderLayout. In dieser Klasse wird die Klasse BorderLayout zur Steuerung des Layoout benutzt. Die fünf Knöpfe werden an jeweils eine der fünf Positionen hinzugefügt:
package name.panitz.gui.layoutTest;
import java.awt.*;
import javax.swing.*;
class BorderLayoutTest extends JFrame {
public BorderLayoutTest(){
Container pane = getContentPane();
pane.setLayout(new BorderLayout());
pane.add(new JButton("eins"),BorderLayout.NORTH);
pane.add(new JButton("zwei"),BorderLayout.SOUTH);
pane.add(new JButton("drei (ein langer Knopf)")
,BorderLayout.CENTER);
pane.add(new JButton("vier"),BorderLayout.WEST);
pane.add(new JButton("fuenf"),BorderLayout.EAST);
pack();
setVisible(true);
}
public static void main(String [] _){new BorderLayoutTest();}
}
Die Klasse erzeugt das folgende Fenster.
Das Layout ändert sich nicht, wenn man mit der Maus die Größe und das Format des Fensters verändert.
-------------------------------------------------------------------------------------------------------------------------
aber ich weiss nicht ob es reicht, das Referat muss mindestens 10minuten gehalten werden + Powerpoint.Präsi
-
Vielen dank, das hatte ich schonmal versucht, und jetzt leider erst in der javaconsole gesehen das mein string nich so recht mit dem alert will ^^
(da sind doppelpunkte usw drinne..)
naja jetzt weiss ich wenigstens bescheid, vielen dank nochma
-
Wenn irgendwo im Quelltext steht DTree.prototype.node("a","b","c");
dann ist das ein aufruf an die funktion. A ist die Node, b die Nodeid und c der Titel.
komisch, das sieht garnich danach aus:
this.node(cn, n);
-
ähm, ja, denke ich hab ein klitzekleines bisschen ahnung davon ^^
man das sind überladene funktionen deshalb werden sie ja auch über die anzahl der parameter bestimmt, wie ich geschrieben hab wird sie in:
dTree.prototype.addNode = function(pNode)
aufgerufen, aber da du dir wahrscheinlich den code nich gezogen hast poste ich ihn jetzt extra für dich:
/*--------------------------------------------------| | dTree 2.05 | www.destroydrop.com/javascript/tree/ | |---------------------------------------------------| | Copyright (c) 2002-2003 Geir Landrö | | | | This script can be used freely as long as all | | copyright messages are intact. | | | | Updated: 17.04.2003 | |--------------------------------------------------*/ // Node object function Node(id, pid, name, url, title, target, icon, iconOpen, open) { this.id = id; this.pid = pid; this.name = name; this.url = url; this.title = title; this.target = target; this.icon = icon; this.iconOpen = iconOpen; this._io = open || false; this._is = false; this._ls = false; this._hc = false; this._ai = 0; this._p; }; // Tree object function dTree(objName) { this.config = { target : null, folderLinks : true, useSelection : true, useCookies : true, useLines : true, useIcons : true, useStatusText : false, closeSameLevel : false, inOrder : true } this.icon = { root : 'img/schloss.jpeg', folder : 'img/right.png', //folder : 'img/close.jpeg', folderOpen : 'img/down.png', //folderOpen : 'img/open.jpeg', node : '', //node : 'img/page.gif', empty : 'img/empty.gif', line : 'img/line.gif', join : 'img/join.gif', joinBottom : 'img/joinbottom.gif', plus : 'img/plus.gif', plusBottom : 'img/plusbottom.gif', minus : 'img/minus.gif', minusBottom : 'img/minusbottom.gif', nlPlus : 'img/nolines_plus.gif', nlMinus : 'img/nolines_minus.gif' }; this.obj = objName; this.aNodes = []; this.aIndent = []; this.root = new Node(-1); this.selectedNode = null; this.selectedFound = false; this.completed = false; }; // Adds a new node to the node array dTree.prototype.add = function(id, pid, name, url, title, target, icon, iconOpen, open) { this.aNodes[this.aNodes.length] = new Node(id, pid, name, url, title, target, icon, iconOpen, open); }; // Open/close all nodes dTree.prototype.openAll = function() { this.oAll(true); }; dTree.prototype.closeAll = function() { this.oAll(false); }; // Outputs the tree to the page dTree.prototype.toString = function() { var str = '<div class="dtree">\n'; if (document.getElementById) { if (this.config.useCookies) this.selectedNode = this.getSelected(); str += this.addNode(this.root); } else str += 'Browser not supported.'; str += '</div>'; if (!this.selectedFound) this.selectedNode = null; this.completed = true; return str; }; // Creates the tree structure dTree.prototype.addNode = function(pNode) { var str = ''; var n=0; if (this.config.inOrder) n = pNode._ai; for (n; n<this.aNodes.length; n++) { if (this.aNodes[n].pid == pNode.id) { var cn = this.aNodes[n]; cn._p = pNode; cn._ai = n; this.setCS(cn); if (!cn.target && this.config.target) cn.target = this.config.target; if (cn._hc && !cn._io && this.config.useCookies) cn._io = this.isOpen(cn.id); if (!this.config.folderLinks && cn._hc) cn.url = null; if (this.config.useSelection && cn.id == this.selectedNode && !this.selectedFound) { cn._is = true; this.selectedNode = n; this.selectedFound = true; } //////// HIER MÜSSTE DER TITLE ALS DRITTER PARAMETER ÜBERGEBEN WERDEN str += this.node(cn, n); if (cn._ls) break; } } return str; }; // Creates the node icon, url and text //////// HIER SOLL DER TITLE ERHALTEN WERDEN !!! ////////////////////// dTree.prototype.node = function(node, nodeId) { //alert(title); var str = '<div class="dTreeNode">' + this.indent(node, nodeId); if (this.config.useIcons) { if (!node.icon) node.icon = (this.root.id == node.pid) ? this.icon.root : ((node._hc) ? this.icon.folder : this.icon.node); if (!node.iconOpen) node.iconOpen = (node._hc) ? this.icon.folderOpen : this.icon.node; if (this.root.id == node.pid) { node.icon = this.icon.root; node.iconOpen = this.icon.root; } str += '<img id="i' + this.obj + nodeId + '" src="' + ((node._io) ? node.iconOpen : node.icon) + '" alt="" /><td valign=middle> <input type=checkbox id="'+title+'" onclick = alert('+title+')></td>'; } if (node.url) { str += '<a id="s' + this.obj + nodeId + '" class="' + ((this.config.useSelection) ? ((node._is ? 'nodeSel' : 'node')) : 'node') + '" href="' + node.url + '"'; if (node.title) str += ' title="' + node.title + '"'; if (node.target) str += ' target="' + node.target + '"'; if (this.config.useStatusText) str += ' onmouseover="window.status=\'' + node.name + '\';return true;" onmouseout="window.status=\'\';return true;" '; if (this.config.useSelection && ((node._hc && this.config.folderLinks) || !node._hc)) str += ' onclick="javascript: ' + this.obj + '.s(' + nodeId + ');"'; str += '>'; } else if ((!this.config.folderLinks || !node.url) && node._hc && node.pid != this.root.id) str += '<a href="javascript: ' + this.obj + '.o(' + nodeId + ');" class="node">'; str += node.name; if (node.url || ((!this.config.folderLinks || !node.url) && node._hc)) str += '</a>'; str += '</div>'; if (node._hc) { str += '<div id="d' + this.obj + nodeId + '" class="clip" style="display:' + ((this.root.id == node.pid || node._io) ? 'block' : 'none') + ';">'; str += this.addNode(node); str += '</div>'; } this.aIndent.pop(); return str; }; };
vielleicht kommen jetzt weniger fragen ^^
Odec
-
danke schonma für reaktionen,
also ich rufe in rekursiven php-funktionen dynamisch die add-funktion von js auf, dort übergebe ich id,parentid,namen, url und title
diese werden ja normal als parameter der addfunktion übergeben, jedoch blicke ich nich so ganz durch den code durch, ich will den title ja im endeffekt nur als parameter an die js-interne:
dTree.prototype.node = function(node, nodeId, title <--)
übergeben, jedoch geht das vorher durch:
dTree.prototype.addNode = function(pNode)
und davor:
dTree.prototype.toString = function()
das problem is , ich kann den code da nich ganz nachvollziehen...
danke, Odec
-
hi zusammen,
ich baue grad nen dynamischen baum, der seine inhalte aus ner mysql-db zieht.
das problem:
ich möchte an jedes element ne checkbox mit nem wert haben, den ich aus php übergebe, jedoch hab ich nicht soviel js-erfahrung um das zu bewerkstelligen...
// Creates the node icon, url and text dTree.prototype.node = function(node, nodeId, title) { //alert(title); var str = '<div class="dTreeNode">' + this.indent(node, nodeId); if (this.config.useIcons) { if (!node.icon) node.icon = (this.root.id == node.pid) ? this.icon.root : ((node._hc) ? this.icon.folder : this.icon.node); if (!node.iconOpen) node.iconOpen = (node._hc) ? this.icon.folderOpen : this.icon.node; if (this.root.id == node.pid) { node.icon = this.icon.root; node.iconOpen = this.icon.root; } str += '<img id="i' + this.obj + nodeId + '" src="' + ((node._io) ? node.iconOpen : node.icon) + '" alt="" /><td valign=middle><input type=checkbox id="'+title+'" onclick = alert('+title+')></td>';
also der hier geschriebene "title" is der wert den ich übergeben will.
also falls mal ein js-bewanderter von euch zeit hat wär ich sehr dankbar, das gesamte grundskript ist hier zu finden:
http://www.destroydrop.com/javascripts/tree/dtree.zip
denke es werden fragen aufkommen
vielen dank schonma
Odec
open source php-java-bridge unter Mac OSX 10.4.8 (Tiger) funktional kompilieren
in Rootserver - Vserver - Webspace
Geschrieben
Hi,
ich hab das Problem das ich die php-java-bridge PHP/Java Bridge
nicht auf meinem System zum laufen bringen kann.
ich habe ein tiger howto gefunden:
Würde mich über Lösungsvorschläge freuen
Danke,
Odec