Te damos la bienvenida a proyecto online, en este lugar vas a hallar la respuesta a lo que estabas buscando.
Solución:
Consulte java.text.AttributedString, que admite subíndices y más. por ejemplo, en su paintComponent() podría ir:
public void paintComponent(Graphics g)
super.paintComponent(g);
AttributedString as = new AttributedString("I love you 104 gazillion");
as.addAttribute(TextAttribute.SUPERSCRIPT, TextAttribute.SUPERSCRIPT_SUPER, 13, 14);
as.addAttribute(TextAttribute.FOREGROUND, Color.RED, 2, 6);
g.drawString(as.getIterator(), 20, 20);
En caso de que alguien use estas funciones hechas a mano:
public static String superscript(String str)
str = str.replaceAll("0", "⁰");
str = str.replaceAll("1", "¹");
str = str.replaceAll("2", "²");
str = str.replaceAll("3", "³");
str = str.replaceAll("4", "⁴");
str = str.replaceAll("5", "⁵");
str = str.replaceAll("6", "⁶");
str = str.replaceAll("7", "⁷");
str = str.replaceAll("8", "⁸");
str = str.replaceAll("9", "⁹");
return str;
public static String subscript(String str)
str = str.replaceAll("0", "₀");
str = str.replaceAll("1", "₁");
str = str.replaceAll("2", "₂");
str = str.replaceAll("3", "₃");
str = str.replaceAll("4", "₄");
str = str.replaceAll("5", "₅");
str = str.replaceAll("6", "₆");
str = str.replaceAll("7", "₇");
str = str.replaceAll("8", "₈");
str = str.replaceAll("9", "₉");
return str;
Tenga en cuenta que existe una pequeña ambigüedad acerca de ¹²³, porque son símbolos acii 251, 253 y 252 y también son símbolos utf. Prefiero usar acsii porque es más probable que sean compatibles con la fuente, pero aquí debe decidir qué quiere usar realmente.
No, un string es solo una secuencia de unidades de código UTF-16. Hay puntos de código Unicode para caracteres de superíndice individuales en las páginas de códigos matemáticos, pero ninguno que marque una región de un string como super-scripted la forma en que hay para las regiones bidi.
Si intenta mostrar texto matemático con superíndices utilizando un contexto de gráficos, debe buscar bibliotecas Latek o MathML escritas en Java.
Si guardas algún contrariedad o forma de renovar nuestro post puedes añadir una anotación y con gusto lo analizaremos.