Я немного смущен, у меня есть jFrame, который я сделал в Netbeans. Этот jFrame имеет jLabel, из которого с самого начала установлено значение setVisible(false);
. Всякий раз, когда вызывается конкретный метод, я затем устанавливаю jLabel в setVisible(true);
, а затем снова использую таймер, чтобы снова установить его на false
через 2 секунды. По-видимому, это не сработает, и я не могу понять, почему. Я знаю о перекраске(); метод, но может понять, как это сделать.jLabel не будет показывать
Я знаю, что фактический метод настройки видимости вызывается, поскольку я установил его для печати строки с текущим состоянием, которое она делает.
Мой фактический код приведен ниже.
public JFram() {
initComponents();
setResizable(false);
jLabel2.setVisible(false);
}
static void tesMethod() {
try {
//function that does something
} finally {
new JFram().showHide(); //call function which is supposed to change the vissibility of jLabel
}
}
void showHide() {
jLabel2.setVisible(true);
System.out.println("reached show");
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
jLabel2.setVisible(false);
System.out.println("reached timer");
}
},
2000
);
}
Вот как я попытался использовать repaint(); метод.
void showHide() {
jLabel2.setVisible(true);
jLabel2.repaint();
System.out.println("reached show");
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
jLabel2.setVisible(false);
jLabel2.repaint();
System.out.println("reached timer");
}
},
2000
);
}
Вместо того, чтобы играть с видимостью «JLabel», почему бы не поиграть со своим текстом? (т. е. 'JLabel.setText (" ");'), что приведет к аналогичному эффекту. – Frakcool
Также вы не должны использовать ['java.util.Timer'] (https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html), но [' javax .swing.Timer'] (https://docs.oracle.com/javase/8/docs/api/javax/swing/Timer.html) – Frakcool
@Frakcool Я очень ценю вклад, я об этом не думал. Однако, попытавшись, проблема все еще существует, и она все равно не сработает. Я изменил все строки 'setVisible' на' setText ("") 'или' setText ("Done") '. – Sm00rf9000