La guía o código que encontrarás en este artículo es la solución más eficiente y válida que encontramos a tus dudas o problema.
Solución:
Esto no proporciona los puntos suspensivos iniciales (…), pero al menos es simple y limpio. Puede colocar el JLabel en un JViewport y mantenerlo desplazado hasta el final en todo momento:
JViewport viewport = new JViewport();
viewport.setView(label);
viewport.addComponentListener(new ComponentAdapter()
@Override
public void componentResized(ComponentEvent event)
int width = viewport.getWidth();
Dimension size = label.getPreferredSize();
viewport.setViewPosition(new Point(size.width - width, 0));
);
Usando la excelente respuesta de trashgod (https://stackoverflow.com/a/3597688/567496), aquí hay una implementación simple de un BasicLabelUI
que crea una elipsis del lado izquierdo.
Sí usa Apache StringUtils.reverse(text)
, pero solo por comodidad. Se podría reemplazar con llamadas a StringBuilder(text).reverse().toString()
.
static class LeftEllipsisUI extends BasicLabelUI
@Override
protected String layoutCL(JLabel label, FontMetrics fontMetrics, String text, Icon icon, Rectangle viewR, Rectangle iconR, Rectangle textR)
return StringUtils.reverse(super.layoutCL(label, fontMetrics, StringUtils.reverse(text), icon, viewR, iconR, textR));
Si eres capaz, tienes la opción de dejar una crónica acerca de qué te ha impresionado de este escrito.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)