약간 혼란 스럽 습니다만, Netbeans에서 만든 jFrame이 있습니다. 이 jFrame에는 처음부터 setVisible(false);
으로 설정된 jLabel이 있습니다. 특정 메서드가 호출 될 때마다 jLabel을 setVisible(true);
으로 설정 한 다음 타이머를 사용하여 2 초 후에 다시 false
으로 설정합니다. 분명히 작동하지 않을 것이고 이유를 파악할 수 없습니다. 나는 재 칠함을 알고있다. 방법을 찾을 수 있지만 그 작업을 만드는 방법 중 하나를 알아낼 수 있습니다.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