Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Liegen auf einer, sind aber keine JComponents. Die übergeordnete JComponent fordert ihre Kinder zum zeichnen auf
und übergibt ihnen ein Graphics-Object. Die FontMetrics brauche ich aber unbedingt vorher, und eine Referenz auf die
View will an dieser Stelle nicht haben...
Ist hier vielleicht was für dich dabei?
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Component.html#getFontMetrics(java.awt.Font)
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JComponent.html#getFontMetrics(java.awt.Font)
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/StyleContext.html#getFontMetrics(java.awt.Font)
Das Problem an der Sache ist das der StyleContext im übergeordneten FrameWork gesetzt wird.
Wenn der in Zukunft nicht mit dem default übereinstimmt(und darauf habe ich keinen Einfluss) würde die Größe
falsch berechnet werden. Ich baue sehr ungern Code ein, bei dem mir schon jetzt klar ist, das es später
Probleme geben kann. Da aber anscheinend niemand eine bessere Idee hat, muss ich wohl davon ausgehen
das es für toolkit.getFontMetrics keinen gleichwertigen Ersatz gibt :?
Falls doch noch jemand ein "Workaround" kennt....
Also, irgendwann musst Du doch mal das ganze Zeichnen, oder? Zu diesem Zeitpunkt durchläuft dein Prog. doch dann die paint-Methode. Da hast Du dann doch ein Graphics-Objekt, welche Du gebrauchen kannst, oder nicht!?
Die Klasse die die Eigenschaften des Labels (z.B. auch die Größe) repräsentiert zeichnet gar nicht und hat auch keine Graphics.
Die berechnung der Größe erfolgt nur beim erstellen des Labels und wenn sich die Beschriftung ändert und wird ansonsten als valid angenommen.
Zum Zeitpunkt des Erstellenes ist das Label aber oft 'weggeklappt', also unsichtbar, und wird deshalb auch nicht
gezeichnet. Das würde für mich bedeuten ich kann von einem Label das noch nicht gezeichnet wurde auch nicht
sagen wie groß es ist. Das muss ich aber wissen um beim 'aufklappen' des Labels 'platz dafür zu schaffen'.
Die Größe erst jetzt zu berechnen kommt nicht in Frage, da ich nicht darauf warten will das repaint abgearbeitet wird,
und nicht bereit bin das delay von paintImmediately() in kauf zu nehmen.
Deshalb suche ich nach einem gleichwertigen Ersatz für die Methode von Toolkit die es aber wohl nicht gibt :autsch: