2017-03-29 1 views
0

Wie kann ich den Text wickeln basierend auf TextgrößeTextumbruch auf Bild mit Grafiken?

g.drawString("Hello, please help me in wrapping the text", 100, 100); 

Ausgabe - Text in gerader Linie:

https://i.stack.imgur.com/oUcMd.jpg

Erforderlich Ausgabe - Wrapped Text basiert auf Textlänge:

https://i.stack.imgur.com/MldhL.jpg

Wie erreicht man die erforderliche Leistung? viel Zeit verschwendet, es zu verstehen, aber keine Verwendung, mit Erklärung wird sehr geschätzt.

+1

Ihre nach [Zeichnung Mehrere Textzeilen] (https://docs.oracle.com/javase/tutorial/2d/text/drawmulstring.html) – MadProgrammer

Antwort

2

Das Umbrechen von Wörtern mit HTML ist der einfachste Weg, um dieses Problem zu lösen.

enter image description here

import java.awt.*; 
import java.awt.image.BufferedImage; 
import javax.swing.*; 

public class LabelRenderTest { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       String title = "<html><body style='" 
         + "text-align: center; width: 100px; padding: 5px;'>" 
         + "<p>Hello, please help me in<br>wrapping the text"; 

       BufferedImage image = new BufferedImage(
         200, 
         100, 
         BufferedImage.TYPE_INT_RGB); 

       JLabel textLabel = new JLabel(title); 
       textLabel.setSize(textLabel.getPreferredSize()); 
       textLabel.setForeground(Color.WHITE); 

       Graphics2D g = image.createGraphics(); 
       textLabel.paint(g); 
       g.dispose(); 

       JOptionPane.showMessageDialog(null, new JLabel(new ImageIcon(image))); 
      } 
     }); 
    } 
}