당신이 표시하고자하는 문자열의 너비 (픽셀)를 알고 끈. 예를 들어, 당신은 할 수 있습니다
FontMetrics metrics = this.getFontMetrics(theFont);
int width = metrics.stringWidth("sample string");
을 지금, 나는이 후, 다음에 할 수 있습니다 "..."당신이 뭘 원하는지 잘 모르겠지만, 당신이 문자열이 다음 추가 잘라야 할 가정
FontMetrics metrics = this.getFontMetrics(theFont);
int maxWidth = /* Get the field's width */;
String myString = "sample string";
if (metrics.stringWidth(myString) > maxWidth) {
do {
myString = myString.substring(0, myString.length - 1);
} while (metrics.stringWidth(myString + "…") > maxWidth)
myString = myString + "…";
}
짧은 문자열을 조작 할 때이 방법이 잘 작동해야합니다. 긴 텍스트의 경우, AttributedString과 LineBreakMesurer의 사용을 의미하는 더 빠른 접근법이 있습니다. Oracle's Text API Trail을보십시오.
안녕하세요. 이것은 내가 원하는 정확하게 똑같습니다. 내 textView 두 문자열의 조합입니다. 문제는 첫 번째 부분을 잘라야하고 두 번째 부분을 잘라내어야한다는 것입니다. 그래서 현재 그것과 같습니다 WAYTOOLONGSTRING | 17 Octobe ... 하지만 그렇게하고 싶습니다. WAYTOLONGST | 17 October 2013 행을 사용하여이 작업을 수행 할 수 있지만 너무 멀리있을 수 있습니다. 또한 setLines는 끝 부분에 3 개의 점을 추가하지 않고 그냥 잘라냅니다. 이것에 대한 제안? 또는 테이블 행과 함께 추가하고 패딩을 추가해야합니다. 어쨌든 당신의 대답을 upvote! – Musterknabe
아직이 답변을 찾고 계시는지 모르겠지만 답변을 변경했습니다. 나는 이것이 당신이 찾고 있었던 것이라고 생각합니다. –
안녕하세요. 해답을 주셔서 감사합니다. 그러나 어쨌든 날짜와 소스를 분리하여 처리 했으므로 더 이상 한 문자열에 결합하지 않았습니다! 하지만 고마워! – Musterknabe