我有JLabel帶有圖標和文本。是否有任何可能隱藏只JLabel的文字?我不想隱藏整個組件(setVisible(false)),但只有文本,所以圖標仍然可見。我想仍然使用getText和setText方法。JLabel - 如何隱藏文本?
感謝您的幫助!
我有JLabel帶有圖標和文本。是否有任何可能隱藏只JLabel的文字?我不想隱藏整個組件(setVisible(false)),但只有文本,所以圖標仍然可見。我想仍然使用getText和setText方法。JLabel - 如何隱藏文本?
感謝您的幫助!
就我而言,沒有直接的方法來做到這一點。但您可以嘗試以下方法:
這裏是我的意思的例子:
public class MyLabel extends JLabel {
private String labelText;
private boolean labelTextVisible = true;
private MyLabel(String text, Icon icon, int horizontalAlignment) {
super(text, icon, horizontalAlignment);
labelText = text;
}
private MyLabel(String text, int horizontalAlignment) {
super(text, horizontalAlignment);
labelText = text;
}
private MyLabel(String text) {
super(text);
labelText = text;
}
@Override
public void setText(String text) {
if (labelTextVisible) {
super.setText(text);
}
labelText = text;
}
@Override
public String getText() {
return labelText;
}
public void setLabelTextVisible(boolean labelVisible){
if(labelVisible){
if(!labelText.equals(super.getText())){
super.setText(labelText);
}
}else{
int spaceCount = super.getText().length();
String hiddenText = "";
for (int i = 0; i < spaceCount; i++) {
hiddenText+=" ";
}
super.setText(hiddenText);
}
this.labelTextVisible = labelVisible;
}
public boolean getLabelTextVisible(){
return labelTextVisible;
}
}
這是太明顯了嗎?
label.setText("");
如果你真的只是想隱藏它,你可以設置前景色是一樣的背景。也許這就足夠了(可能需要防止圖標移動,具體取決於你如何設置對齊方式)。
我今天剛遇到這個問題。
我的JLabel有一個圖標,我只需要顯示圖標。我有一個MouseListener,爲此我需要標籤的文本來唯一標識標籤。
我的解決方法是使用setToolTipText()
而不是setText()
,並在MouseListener中使用而不是getText()
。
我也面臨同樣的問題,我的解決方法是簡單地使用setName()
和getName()
方法到位的setText()
和getText()
方法。希望它會有所幫助。 setToolTipText()
的問題在於鼠標懸停時顯示工具提示。
最簡單的方法是將字體設置爲0! 試一試。工作正常。
label.setFont(new java.awt.Font("Lucida Grande", 1, 0));
「我想仍然使用getText和setText方法。」 *使用它們*,如果不顯示文本?這種設計有一種奇怪的氣味。 – 2011-04-11 14:20:32