2011-01-07 9 views
3

Wir haben eine sehr große Java Swing-Desktopanwendung, die sehr viele Ansichten enthält. Entwickler haben im Laufe der Jahre ziemlich gute Arbeit geleistet, indem sie geeignete Klassenorte ausgewählt haben, die die allgemeine Struktur unserer Benutzeroberfläche für diese Ansichten widerspiegeln. In den meisten Fällen ist dies sehr hilfreich beim Aufspüren bestimmter Komponenten, die Fehler enthalten. Es gibt jedoch Fälle, in denen das Finden eines Panels, Dialogs usw. sehr schmerzhaft ist. In der Regel werden unsere Eigenschaftendateien nach eindeutigen Zeichenfolgefolgen durchsucht, die auf der Benutzeroberfläche angezeigt werden.Überprüfen der Komponentenhierarchie in der Java-Benutzeroberfläche

Kennt jemand ein Drittanbieter-Tool, mit dem ein Entwickler sich in eine Swing-Anwendung einklinken und auf einen Bereich der Benutzeroberfläche klicken kann, um den Namen/das Paket/die Hierarchie der angeklickten Komponente anzuzeigen?

Antwort

4

SwingExplorer ist das perfekte Werkzeug, dass für. Es macht, was Sie beschreiben, und noch mehr (Schritt für Schritt Zeichnung von Java2D, EDT Verletzungen, AWT-Ereignisse).

Hinweis: Das Projekt wird auf java.net verschoben.

1

In der SwingX-Demo gibt es etwas, das genau das tut, wonach Sie suchen. Die JXTreeTable-Demo enthält eine Struktur der Komponentenhierarchie. Wenn die Maus über eine bestimmte Komponente rollt, wird sie in der Tabelle ausgewählt.

Sie einen Blick können here

3

Hat jemand von einem Drittanbieter-Tool wissen, dass ein Entwickler erlaubt, in einer Swing-Anwendung und klicken Sie auf einen Bereich der Benutzeroberfläche Haken, der Name/Paket/Hierarchie der Komponente zu offenbaren, die

geklickt wurde

Darryls Component Tree Model sollte Ihnen diese grundlegenden Informationen liefern. Die Demo zeigt, wie Sie den Stammbereich als Container für die Anzeige aller Komponenten verwenden würden. Sie müssten Ihrer Anwendung einen MouseListener hinzufügen, um den angeklickten Container zu erhalten, damit Sie den Komponentenbaum anzeigen können.

0

könnte glauben, dass es mich nicht, aber es könnte wirklich so einfach sein wie:

SwingUtilities.getRoot(...).list() 

Die Liste Methode seit 1.0 vorhanden ist. lol.

Verwandte Themen