私は少し混乱していますが、私はNetbeansで作成したjFrameを持っています。このjFrameのjLabelは、最初からsetVisible(false);
に設定されています。特定のメソッドが呼び出されるたびに、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
);
}
...しかしので、私はそれが本当に速い代わりに、それがあるべきとして2秒を取るに見えるGIFを記録した時の、上記のコードによって生成されます'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