Wie schreibt man text in ein Rechteck
Hallo, ich bin erstellen einer java-desktop-Anwendung, wo ich bin, Zeichnung Rechteck. Ich möchte schreiben Sie einen text in Rechteck.
Wie kann ich das erreichen?
Hier ist mein code:
class DrawPanel extends JPanel {
private void doDrawing(Graphics g) {
int a=90;
int b=60;
int c=10;
int d=15;
ArrayList<Graphics2D> g1 = new ArrayList<Graphics2D>();
for(int i=0;i<=9;i++){
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(new Color(212, 212, 212));
g2d.drawRect(c, d, a, b);
d+=65;
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
doDrawing(g);
}
}
alles in doDrawing über Graphics2D shoould werden in paintComponent, in doDrawing zu erstellen, die nur die Koordinaten, Objekte, innen paintComponent nur, um eine Schleife innerhalb arrray der vorbereiteten Objekte
Berücksichtigen Sie auch
drawString
- Methode. nach drawRect
.Berücksichtigen Sie auch
TextLayout
gesehen hier.InformationsquelleAutor user3456343 | 2014-03-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie Ihre
Graphics2D
- Objekt, und rufendrawString(String str, int x, int y)
. So etwas wieBeachten Sie, dass der Javadoc gibt
so müssen Sie berücksichtigen, den Raum der Schrift nimmt auf dem Bildschirm. Verwenden
FontMetrics
.Es ist die a-und c Sie definiert, es ist nur ein Beispiel, ich weiß nicht, ob das ist, wo Sie wollen Ihren Text.
y-parameter von drawString setzt die Grundlinie der string, (b+d)/2 richten Sie die Zeichenfolge Grundlinie zur Mitte vertikal, nicht der text selbst.
Wo in der Frage oder der Antwort sagt es etwas über die Einstellung der Zeichenfolge in der Mitte? Ich sagte sogar in dem Kommentar über dir, ich weiß nicht, wo OP wollte die Zeichenfolge. Das ist kein Grund, downvote.
Sie haben Recht, ich verpasste den Punkt, die Zentrierung war nicht angefordert. Es immer noch Wert zu erwähnen, dass die y-Koordinate im Tunnelzug legt die baseline der text, der anstelle der linken oberen Ecke (wie in anderen Zeichenoperationen wie drawRect). Müssen Sie den Aufstieg von der schriftart (aus dem fontmetrics - dann linemetrics Strukturen) wollen Sie den text wirklich gerendert, die innerhalb des Rechtecks (und nicht teilweise oben oder über die top line ist).
InformationsquelleAutor user1803551