2013-03-19 59 views
0

我有Java Swing JLabel的問題。 我想要在JLabel上顯示的文本超出了JLabel的範圍。我想通過Marqueeeffect顯示它。我已經實現了這個效果,但是當有一個字符串超出了JLabel的範圍時,它會被切斷,其餘的被替換爲「...」。Java Swing JLabel文本超出範圍

我的問題是,如果有機會單獨設置JLabel的文本長度,而不取決於邊界,它不會被截斷?

希望有人能爲我解答。

我不使用任何佈局管理器,我不希望JLabel得到調整大小,它應該只能包含比它的邊界更長的文本。

+0

看看[此](http://stackoverflow.com/questions/5380037/java-jlabel-jbutton-on-some-systems-i-get-an-ellipsis-and-on-一些系統)後幫助。 – 2013-03-19 13:14:30

+0

請參閱[this](http://stackoverflow.com/questions/3617326/marquee-effect-in-java-swing)文章。 – Alepac 2013-03-19 13:19:52

+2

_I不使用任何佈局管理器_這是您的第一個,也是唯一的問題。使用它們,許多問題都會自動解決,包括上面公開的問題。 _我不想讓JLabel調整大小_這就像說我想要一個冰淇淋,但我不想要一個冰冷的冰淇淋。如果您在JLabel上設置更大的文本並想要全部查看,則必須更改其大小。 – 2013-03-19 13:20:03

回答

0

Swing JLabel沒有設計用於滾動字幕。

這是JLabel的source code。您可以修改文本處理例程以執行滾動滾動,而不是使用省略號壓縮文本。

哦,你最好使用佈局管理器。沒有佈局管理器,您的選取框JLabel將無法正確佈局。

+0

嘿,謝謝你的回答。我用substring做了一個工作。它不是那麼流暢,但至少我可以顯示比標籤更長的文字 – Chocolate 2013-03-19 14:23:28

1

在此LayoutTest中,您可以看到標籤的UI代理使用layoutCompoundLabel()如何在標籤大小低於首選大小時刪除文本。

在此MarqueeTest,MarqueePanel有一個默認的FlowLayout,它採用顯示標籤的首選大小。

image