El texto de la etiqueta ya está alineado con la parte superior. Incluso si establece los tres de:
label.setVerticalAlignment(JLabel.TOP);
label.setVerticalTextPosition(JLabel.TOP);
panel.setAlignmentY(TOP_ALIGNMENT);
todavía podría encontrar esa brecha.
El problema está relacionado con font-metrics. La fuente deja espacio para los signos diacríticos, y aunque los números en inglés e incluso las letras no contienen signos diacríticos en letras mayúsculas, Arial definitivamente contiene una amplia gama de caracteres internacionales, incluso más altos que una letra mayúscula, por ejemplo, diéresis (ÄÜÜ) o caracteres alemanes que contiene signos diacríticos portugueses (Á?).
Si desea una solución rápida y fácil que sea un truco, que no se adapte bien a fuentes y plataformas, puede usar un valor negativo en un borde para compensar las métricas de fuente. está visualizando
label.setBorder(BorderFactory.createEmptyBorder(-3 /*top*/, 0, 0, 0));
Si desea solucionarlo "derecho" debe fijarse en el aprendizaje sobre el paquete FontMetrics, ya que tiene muchas funciones que podrían ser útiles para el cálculo de la altura real y la ubicación del texto, de manera que puedes mover toda la cadena por la cantidad adecuada de píxeles.
olvidé una línea. label.setFont (fuente); – arpanoid
La razón probable de esto es que algunos símbolos se extenderían más allá de los números, y la alineación del texto dentro de la etiqueta, combinada con el tamaño de la etiqueta, debe tener en cuenta varias métricas de fuentes. http://upload.wikimedia.org/wikipedia/commons/3/39/Typography_Line_Terms.svg No es una respuesta a tu pregunta, pero podría ser útil. –
+1 para incluir una imagen; como un lado, no pase por alto el valor de ['RenderingHints'] (http://download.oracle.com/javase/6/docs/api/java/awt/RenderingHints.html). – trashgod