Newsgroup: it.comp.java
Titolo: Cambiare font?

Buona sera ragazzi.
Smanettando con i Font in Java, mi sono chiesto se sia possibile
inserire un font esterno, magari trattandolo come un File. Ho letto in
rete che un modo per aggiungere dei font e' quello di modificare il
file properties.font del JDK. Purtroppo sto' sviluppando una webapp e
non ho l'accesso a quel file :(
Esiste, magari, un metodo alternativo per aggiungere un font?
Grazie per le eventuali risposte ^^

 inserire un font esterno, magari trattandolo come un File.
Forse uno di questi metodi e' quello che cerchi:
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Font.html#createFont(int,%20java.io.File)
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Font.html#createFont(int,%20java.io.InputStream)

 Forse uno di questi metodi e' quello che cerchi:
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Font.html#createFont...)http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Font.html#createFont..
.)
Grazie mille!
Provero' e ti faccio sapere! Buona giornata ^^

Bene, quel codice sembra funzionare, anche se non riesco a scrivere
correttamente.
Ho buttato giu' un codice semplice per provare, ma mi sono accorto che
la dimensione, una volta creato il Font, rimane a 1. Come potrei
cambiarla? non trovo metodi adatti, dato che la dimensione si setta
nel costruttore di Font >.<
Il source e' questo:
import java.awt.Image.*;
import java.awt.image.BufferedImage;
import java.awt.*;
import javax.imageio.*;
import java.io.*;
import java.awt.Font.*;
public class ModifyImage {
	private Graphics2D myG2D;
	public ModifyImage() {
		// creo un buffer per l'immagine back.png
		//BufferedImage bimage;
		//bimage = getBImage( "back.png", 250, 68 );
		FileInputStream fis;
		Font gne = null;
		try {
			fis = new FileInputStream("Vera.ttf");
			gne = Font.createFont( Font.TRUETYPE_FONT, fis);
			fis.close();
		} catch ( FileNotFoundException e ) {
			e.printStackTrace();
		} catch ( IOException e ) {
			e.printStackTrace();
		} catch ( FontFormatException e ) {
			e.printStackTrace();
		}
		// informazioni
		System.out.println( gne.getFontName() );
		System.out.println( gne.getName() );
		System.out.println( gne.getSize() ); // restituisce 1
		// creo un buffer per la nuova immagine
		BufferedImage bImg = new BufferedImage( 250, 68,
BufferedImage.TYPE_INT_RGB );
		// creo un nuovo file, destinato a contenere la mia immagine
		File imgFile = new File("newfile.png");
		// ora posso graficare sul buffer
		myG2D = bImg.createGraphics();
		myG2D.setBackground( Color.BLACK );
		//myG2D.drawImage(bimage, 0, 0, null);
		myG2D.setFont( gne );
		typeText( myG2D, "Wela", Color.WHITE, 10, 20 );
		// provo
		try {
		ImageIO.write( bImg, "png", imgFile );
		} catch ( IOException e ) {
			e.printStackTrace();
		}
	}
	// typeText
	// dato l'oggetto, la stringa da disegnare, il colore e le coordinate
	private void typeText( Graphics2D obj, String text, Color c, int x,
int y ) {
		obj.setColor( (Color) c );
		obj.drawString( text, x, y );
	}
	// getBImage
	// dato il path e le dimensioni dell'immagine, la si inserisce in un
BufferedImage
	private BufferedImage getBImage( String path, int width, int height )
{
		// apro il file
		File f = new File( path );
		// creo il buffer
		BufferedImage bimage = new BufferedImage( width, height,
BufferedImage.TYPE_INT_RGB );
		// try
		try {
			// leggo con ImageIO dal file
			bimage = ImageIO.read( f );
		} catch (IOException e ) {
			e.printStackTrace();
		}
		return bimage;
	}
	public static void main(String[] args) {
		ModifyImage start = new ModifyImage();
	}
}

 Come potrei cambiarla? 
E' spiegato nel link che ti ho postato ;)
"This base font can then be used with the deriveFont  methods in this 
class to derive new Font objects with varying sizes, styles, transforms 
and font features."


Stupido io che l'ho letto di sfuggita! XD
Grazie mille ancora e scusa xD