我有一个带有图标和文字的JLabel。是否有可能隐藏只有JLabel的文字?我不想隐藏整个组件(setVisible(false)),而只隐藏文本,因此图标仍然可见。我还想使用getText和setText方法。
感谢您的帮助!
答案 0 :(得分:3)
这太明显了吗?
label.setText("");
如果您真的只想隐藏它,可以将前景色设置为与背景相同。也许这就足够了(可能有必要防止图标移动,具体取决于你如何设置对齐方式。)
答案 1 :(得分:3)
我也遇到了同样的问题,我的解决方法是简单地使用setName()
和getName()
方法代替setText()
和getText()
方法。希望它会有所帮助。 setToolTipText()
的问题是鼠标悬停时会显示工具提示。
答案 2 :(得分:2)
就我而言,没有直接的方法可以做到这一点。但你可以尝试以下一些方法:
这是我的意思的一个例子:
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;
}
}
答案 3 :(得分:0)
我今天刚遇到这个问题。
我的JLabel有一个图标,我只需要显示图标。我有一个MouseListener,为此,我需要标签的文本来唯一标识标签。
我的解决方法是使用setToolTipText()
代替setText()
,并在MouseListener中使用getToolTipText()
代替 getText()
。
答案 4 :(得分:0)
最简单的方法就是将字体设置为0 !! 试试看。工作正常。
label.setFont(new java.awt.Font("Lucida Grande", 1, 0));