uso tipo texto tamaño setfont letra fuentes fuente cursiva color cambiar aumentar java graphics fonts awt drawstring

tipo - setfont java



Cómo cambiar el tamaño de fuente en drawString Java (5)

Debido a que no se puede contar con que una fuente en particular esté disponible, un buen enfoque es derivar una nueva fuente a partir de la fuente actual. Esto te da la misma familia, peso, etc. solo más grande ...

Font currentFont = g.getFont(); Font newFont = currentFont.deriveFont(currentFont.getSize() * 1.4F); g.setFont(newFont);

También puede utilizar TextAttribute.

Map<TextAttribute, Object> attributes = new HashMap<>(); attributes.put(TextAttribute.FAMILY, currentFont.getFamily()); attributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_SEMIBOLD); attributes.put(TextAttribute.SIZE, (int) (currentFont.getSize() * 1.4)); myFont = Font.getFont(attributes); g.setFont(myFont);

El método TextAttribute a menudo da una flexibilidad aún mayor. Por ejemplo, puede establecer el peso en semi-negrita, como en el ejemplo anterior.

Una última sugerencia ... Debido a que la resolución de los monitores puede ser diferente y continúa aumentando con la tecnología, evite agregar una cantidad específica (como getSize () + 2 o getSize () + 4) y considere la posibilidad de multiplicar. De esta manera, su nueva fuente es siempre proporcional a la fuente "actual" (getSize () * 1.4), y no estará editando su código cuando obtenga uno de esos agradables monitores 4K.

Cómo aumentar el tamaño de la fuente en g.drawString("Hello World",10,10); ?


Ejemplo de código a continuación:

g.setFont(new Font("TimesRoman", Font.PLAIN, 30)); g.drawString("Welcome to the Java Applet", 20 , 20);


He localizado una imagen here , usando el código de abajo. Soy capaz de controlar cualquier cosa en el texto que quería escribir (por ejemplo, firma, marca de agua transparente, texto con diferente fuente y tamaño).

import java.awt.Font; import java.awt.Graphics2D; import java.awt.Point; import java.awt.font.TextAttribute; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.net.URL; import java.util.HashMap; import java.util.Map; import javax.imageio.ImageIO; public class ImagingTest { public static void main(String[] args) throws IOException { String url = "http://images.all-free-download.com/images/graphiclarge/bay_beach_coast_coastline_landscape_nature_nobody_601234.jpg"; String text = "I am appending This text!"; byte[] b = mergeImageAndText(url, text, new Point(100, 100)); FileOutputStream fos = new FileOutputStream("so2.png"); fos.write(b); fos.close(); } public static byte[] mergeImageAndText(String imageFilePath, String text, Point textPosition) throws IOException { BufferedImage im = ImageIO.read(new URL(imageFilePath)); Graphics2D g2 = im.createGraphics(); Font currentFont = g2.getFont(); Font newFont = currentFont.deriveFont(currentFont.getSize() * 1.4F); g2.setFont(newFont); Map<TextAttribute, Object> attributes = new HashMap<>(); attributes.put(TextAttribute.FAMILY, currentFont.getFamily()); attributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_SEMIBOLD); attributes.put(TextAttribute.SIZE, (int) (currentFont.getSize() * 2.8)); newFont = Font.getFont(attributes); g2.setFont(newFont); g2.drawString(text, textPosition.x, textPosition.y); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(im, "png", baos); return baos.toByteArray(); } }


Font myFont = new Font ("Courier New", 1, 17);

El 17 representa el tamaño de letra. Una vez que tengas eso, puedes poner:

g.setFont (myFont); g.drawString ("Hello World", 10, 10);


g.setFont(new Font("TimesRoman", Font.PLAIN, fontSize));

Donde fontSize es un int. La API para drawString establece que los parámetros x e y son coordenadas y no tienen nada que ver con el tamaño del texto.