我有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