2010-12-10 7 views
2

Ich habe versucht, ein rechteckiges Bild zu schaffen, wo 2 Dinge sein werden.Create Image-Datei mit Java

  1. Etikett (100% Breite und 20% der Höhe)
  2. Ein Textbereich (100% Breite und 80% der Höhe)

So wird lablel oben sein und Textbereich sein unten

Also habe ich versucht, einen JFrame zu erstellen und beide Komponenten dort zu platzieren. Dann erstelle ich sein Bild mit JFrame.createImage(width, height) und zuletzt verwendete ich ImageIO.write(). Aber das Problem war, dass um die Komponenten in Image herum etwas mehr Platz war. Wenn ich versuchte, seine Grenze zu setzen, dann erstelle ich ein genaues Bild, aber dieses Bild funktioniert perfekt unter Windows, aber es funktioniert nicht auf Mac. Irgendeine Idee warum?

Gibt es auch einen anderen einfachen Weg, wo ich das erreichen kann. Ich habe 2 Tage verbracht, konnte aber keine Lösung finden.

Bitte Beratung

Dank in adnvace

+0

Es ist normalerweise keine gute Idee, Bilder von Text zu erstellen. Müssen Sie das unbedingt tun? – blueberryfields

+0

Veröffentlichen Sie Ihre SSCCE (http://sscce.org), um das Problem zu demonstrieren. – camickr

Antwort

1

Rendering Swing-Komponenten ist sehr vielseitig, aber die Benutzeroberfläche delegieren für jede Komponente ist je nach Plattform. In ähnlicher Weise variieren die Schriftmetriken auch nach Plattform und Anbieter. Wenn Sie eine sehr genaue Kontrolle über die Platzierung von Text benötigen, können Sie auf die Schriftartmetriken des Grafikkontexts zugreifen, wie in dieser example zu sehen ist, und Sie können das Aliasing wie gezeigt here abschwächen.