ツリー内で視覚的に表現したいXMLファイルがあります。私がこれをやろうとすれば、私はJythonを使用しなければならず、私たちのシステムではバージョン2.5.0しか利用できません。私はJavaの経験がない(それを読みにくい)が、少しスイングの経験(Jythonを介して)と私はJTree()でこれを行うことができるかもしれない聞いたことがあります。私はこれのいくつかのJava Swingの例を見てきましたが、それを行うためのJythonicの方法を知っている人はいますか?私は特定のXMLパーサしか利用できないことに注意してください - 私は現在xml.etree.ElementTreeのXMLパーサーを使用しています。スイングツリーにXMLファイルを表すための巧妙な方法はありますか?
EDIT: 私はチュイテイの例でサルに少しを試してみましたが、これを試みた:それは
TypeError: add(): 1st arg can't be coerced to java.awt.PopupMenu, java.awt.Component
アムを言って、self.contentPane.add(xmlTreeModel)
になったとき
from java import awt
from javax import swing
from java.lang import System
from xml.etree import ElementTree
class XmlTreeModel(swing.tree.TreeModel):
def __init__(self, etree):
self.etree = etree
def getRoot(self):
return self.etree.getroot()
def getChildCount(self, object):
return len(object)
def getChild(self, parent, index):
return parent[index]
class Viewer(swing.JFrame):
def __init__(self):
super(Viewer, self).__init__()
def display(self, fileName):
xmlObject = ElementTree.parse(fileName)
xmlTreeModel = XmlTreeModel(xmlObject)
jTree = swing.JTree(xmlTreeModel)
self.contentPane.add(jTree)
self.contentPane.setPreferredSize(awt.Dimension(100, 200))
self.setTitle("Tree")
self.pack()
self.setDefaultCloseOperation(swing.JFrame.DO_NOTHING_ON_CLOSE)
self.windowClosing = self.exit
self.setLocationRelativeTo(None)
self.setVisible(True)
def exit(self, event):
System.exit(0)
if __name__ == "__main__":
viewer = Viewer()
viewer.display('my.xml')
は残念ながら、それは例外が発生しますコンテンツペインに追加するだけでテストすることはできませんか?
EDIT:JTreeが欠けていました。この修正でコードを更新しました。
私は試して、私の質問にコードを追加しました。例外の迅速なGoogleは、私が読むことができない多くのJavaを返した、あなたはそれを認識する任意のチャンス? – aeroNotAuto
JTreeはTreeModelを使用してデータを取得します。 self.contentPane.add(JTree(xmlTreeModel)) –
ああ、それは寂しいことでした。素晴らしいです、ありがとう! – aeroNotAuto