Tôi đang sử dụng đoạn mã sau để fade-in một JDialog
với một javax.swing.Timer
:Setting JDialog opacity bởi Hẹn giờ
float i = 0.0F;
final Timer timer = new Timer(50, null);
timer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (i == 0.8F){
timer.stop();
}
i = i + 0.1F;
setOpacity(i);
}
});
timer.start();
Các Dialog
là độc đáo nhạt dần trong với hiệu quả mong muốn nhưng cuối cùng, một IllegalArgumentException
xảy ra nói rằng:
The value of opacity should be in the range [0.0f .. 1.0f]
Nhưng vấn đề là tôi không đi xa fro i = 0.8F
vậy làm thế nào nó có thể là một cuộc tranh luận bất hợp pháp ??
Ngoại lệ xảy ra tại dòng: setOpacity(i);
Bất kỳ đề xuất nào? Các giải pháp?
Tôi đề nghị xem lại mã của bạn như là 'i' bạn đang thay đổi có lẽ không phải là người bạn mong đợi. Nó không thể là biến 'final float i = 0.0F;' khi biến đó được tạo thành 'final' – Robin
xin lỗi vì @Robin, đó chỉ là lỗi đánh máy của tôi, lần này đã chỉnh sửa .. bạn có thấy nếu tôi tạo nó cuối cùng nó ném một 'lỗi trình biên dịch' thay vì' ngoại lệ'..thanks cho chỉ nó ra .. :) – Asif
Tôi có thể hỏi phương thức "setOpacity" này là gì không? Tôi đang cố gắng thực hiện hộp thoại fadein/out quá. –