Программисты JAVA общаются здесь
Anonymous
JPanel Fade анимация Java Swing не работает
Сообщение
Anonymous » 10 янв 2025, 00:41
Я пытаюсь создать анимацию затухания, которая будет работать для любого компонента
Я переопределяю альфа-композит компонента рисования, но кажется, что он абсолютно ничего не делает.
Код: Выделить всё
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package JAnimator;
import java.awt.AlphaComposite;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComponent;
import javax.swing.Timer;
public class JAnimator {
public static class fade_animation extends JComponent{
private float opacity;
private Timer timer;
private Component target;
private int speed=100;
private boolean isIn = true;
public fade_animation(Component targetComponent, int SpeedMilisec) {
this.target = targetComponent;
this.speed = SpeedMilisec;
timer = new Timer(speed, new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
if(isIn){
opacity += 0.1f;
if(opacity>=1.0f){
opacity = 1.0f;
timer.stop();
}
target.repaint();
}else{
opacity -=0.1f;
if(opacity
Подробнее здесь: [url]https://stackoverflow.com/questions/79344085/jpanel-fade-animation-java-swing-doesnt-work[/url]
1736458895
Anonymous
Я пытаюсь создать анимацию затухания, которая будет работать для любого компонента Я переопределяю альфа-композит компонента рисования, но кажется, что он абсолютно ничего не делает. [code]/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package JAnimator; import java.awt.AlphaComposite; import java.awt.Component; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JComponent; import javax.swing.Timer; public class JAnimator { public static class fade_animation extends JComponent{ private float opacity; private Timer timer; private Component target; private int speed=100; private boolean isIn = true; public fade_animation(Component targetComponent, int SpeedMilisec) { this.target = targetComponent; this.speed = SpeedMilisec; timer = new Timer(speed, new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { if(isIn){ opacity += 0.1f; if(opacity>=1.0f){ opacity = 1.0f; timer.stop(); } target.repaint(); }else{ opacity -=0.1f; if(opacity Подробнее здесь: [url]https://stackoverflow.com/questions/79344085/jpanel-fade-animation-java-swing-doesnt-work[/url]