Sto provando a scrivere un'applicazione che ha bisogno di disegnare molte stringhe usando la classe Graphics2D in Java. Ho bisogno di ottenere le dimensioni di ogni oggetto String (per calcolare la posizione esatta di ogni stringa). Ci sono così tante stringhe che dovrebbe essere fatto prima che il metodo paint() venga chiamato e solo una volta all'inizio del mio programma (quindi non ho ancora l'oggetto Graphics2D). So che esiste un metodo Font.getStringBounds() ma ha bisogno di un oggetto FontRenderContext come parametro.Ottenere la dimensione della stringa in java (senza avere un oggetto Graphics disponibile)
quando ho cercato di creare il mio oggetto:
FontRenderContext frc = new FontRenderContext(MyFont.getTransform(), true, true)
e quindi ottenere le stringhe limiti che ho sempre ottenere dimensioni diverse rispetto a quando ottengo FontRenderContext utilizzando il metodo Graphics2D.getFontRenderContext() metodo all'interno paint() . Le differenze non sono grandi (circa 1E-3), ma mi chiedo perché c'è qualche differenza?
Tuttavia, esiste un modo migliore e sicuro per ottenere le dimensioni di una stringa?
Thnx per qualsiasi aiuto in anticipo!
stringWidth non restituisce la dimensione della stringa valida perché non considera l'anti-aliasing e altre funzionalità (come la spaziatura tra i caratteri). –