簡體   English   中英

當內容太長時,JTextField顯示“…”

[英]JTextField show '…' when content is too long

我正在嘗試使JTextField在其內容長於顯示區域時顯示點。 我希望具有與JTable相同的行為,當我調整列的大小時,內部文本會發生變化-當其顯示為long時,僅顯示它的開頭,然后顯示三個點(要查看我的想法,請運行第一個示例通過此鏈接並更改列大小-因為我是新來的,所以我不能發布圖像;))

有可能嗎? 我想到的唯一解決方案是使用一個類擴展JTextField ,該類將具有其他字段oryginalText並具有類似的行為(不進行測試,這只是一個建議, JtextField尺寸不會改變):

import javax.swing.JTextField;

public class MyTextField extends JTextField {

    private String oryginalText;
    private int length;

    @Override
    public void setText(String text) {
        oryginalText = text;
        if (oryginalText.length() > length)
            super.setText(oryginalText.substring(0, length - 2) + "..");
        else
            super.setText(oryginalText);
    }
}

有任何想法嗎?

在擴展JTextField並存儲原始(未修剪)值的想法上:

將文本字段顯示為禁用(或不可編輯)並帶有修剪的文本。 當用戶選擇文本字段時,將其啟用/可編輯並顯示整個原始文本。

然后,當用戶按下Enter鍵或焦點退出文本字段時,再次:禁用/不可編輯和修剪的文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM