Текст JLabel завершен

У меня есть JLabel с текстом больше размера ширины, поэтому текст отображается так:

введите здесь описание изображения

я хочу, чтобы текст был обрезан следующим образом:

ellll

Я не могу изменить размер ширины этикетки, это размер, который я поставил, это строки:

Cuadros[5].setText("Auto Incremet");
Cuadros[5].setSize(ImgA(Cuadros[5]), ImgL(Cuadros[5]));

Спасибо за ваши советы, я надеюсь, что смогу понять мою идею: D


person WearFox    schedule 18.10.2013    source источник
comment
Пусть макет сделает это за вас.   -  person trashgod    schedule 19.10.2013


Ответы (2)


Попробуйте следовать,

 final JLabel label = ...
...
label.setText("prototype text to define size");
final Dimension size = label.getPreferredSize();
label.setMinimumSize(size);
label.setPreferredSize(size);
...
label.setText(...);
person Dark Knight    schedule 18.10.2013
comment
Я полагаю, что ОП указал, что он не хочет изменять размер ярлыка. Кажется, он ищет собственный способ обработки усечения текста. - person PM 77-1; 18.10.2013

Этот пост не закрыт, поэтому я надеюсь, что ответ будет в порядке. В любом случае, я считаю, что решением может быть вложение вашего JLabel в его собственное JPanel, если его расположение не требует, чтобы метка вписывалась в жесткие границы со всех сторон, как BorderLayout или GridLayout.

Это рассматриваемый пример:

введите здесь описание изображениявведите здесь описание изображения

Вот SSCCE, демонстрирующий пример:

import javax.swing.*;
import java.awt.*;

public class TruncationTest1
{
    public static void main(String[] args)
    {
        JFrame f = new JFrame("Truncation Test");
        JPanel panel = new JPanel(); //Default layout, AKA FlowLayout
        JLabel label = new JLabel("Try resizing the frame: This will not be truncated for some reason.");
        JLabel label2 = new JLabel("However, this JLabel, on the other hand, will become truncated.");
        f.setSize((int)label.getPreferredSize().getWidth() + 40,65);
        f.setLayout(new GridLayout(2,1));
        f.setLocationRelativeTo(null);
        f.setBackground(Color.BLACK);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(panel);
            panel.setBackground(Color.WHITE);
            panel.add(label);
        f.add(label2);
            label2.setHorizontalAlignment(JLabel.CENTER);
            label2.setForeground(Color.WHITE);
        f.setVisible(true);
    }
}
person Scott Hetrick    schedule 07.01.2015