Как изменить эллипсы строки клипа, используемые Swing при размещении текстовых компонентов - PullRequest
2 голосов
/ 10 августа 2010

По умолчанию Swing использует эллипсы ..., чтобы указать, что текст в текстовом поле был усечен. Можно ли изменить это поведение, чтобы Swing использовал другую строку клипа? Например, использовать> вместо ...

SwingUtilities2.java имеет метод clipString (), который, по-видимому, выполняет это усечение и добавляет «...». К сожалению, строка клипа выглядит жестко закодированной.

Ответы [ 2 ]

1 голос
/ 10 августа 2010

Вероятно, не так сложно самостоятельно выполнить отсечение.

Если вы хотите отобразить текст, скажем, JLabel, вы просто получаете FontMetrics (который имеет хороший метод charsWidth) и добавляете символы до тех пор, пока он не подходит, а затем просто возвращайтесь по мере необходимости и добавьте '>'.

Перегрузите подходящие методы, такие как setSize, setFont и т. Д., И пересчитайте строку, которая должна отображаться.

0 голосов
/ 10 августа 2010

SwingUtilities2 имеет много статических методов. Вы можете (попытаться) скопировать и вставить исходный код этого класса в частный служебный класс и настроить clipString для своих нужд.

Или выполните некоторую «постобработку» и замените эллипс в усеченной строке результата.

Для всех тех других случаев, когда clipString() вызывается из структуры Swing, я думаю, что вы потеряли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...