Blendeffekte und Animation von SwingObjekten

Status
Nicht offen für weitere Antworten.

8ull23y3

Bekanntes Mitglied
Hat das schonmal jemand versucht? Ein Objekt sei es jetzt ein TextFeld n Button oder sonst was...
ählich ner Flash oder PP-Präsentation einblenden zu lassen?

Ach und nochwas...
Wie sieht das aus mit ner Animation dieser Objekte von rechts oder links, oben oder unten einfliegen lassen?
Wie geht das? Mit Position ändern und repaint(); oder wie?

Das mit dem Einblenden hab ich gedacht geht per ändern der Farben am Anfang die Hintergrundfarbe des Frames und dann immer per Schleife an die Standardfarben der Objekte annähern.

Vielleicht hats ja schonmal einer probiert.

Vielen Dank schonmal...
 
B

Beni

Gast
Einblenden hab ich noch nie versucht, aber das "herumfliegen lasen" ist nicht schwer: du benötigst nur einen javax.swing.Timer der die Position verändert (ich weiss nichtmal, ob repaint noch nötig ist).
 

8ull23y3

Bekanntes Mitglied
Also das Problem mit der Animation scheint gelöst.

"Einfach" n Timer aus dem Paket javax.swing dem nen ActionListener mit auf den Weg geben und dann im actionPerformed die Position der Objekte ändern. Probiert hab ichs noch nicht aber ich schreib das mal hier rein wenn ichs probiert hab. THX an Beni
 
B

Beni

Gast
Noch ein bisschen Code für transparente Buttons.

Ich bin mir nicht sicher, ob das für alle LookAndFeels funktioniert (irgendein Hacken hat es sicher), aber vielleicht als Einstieg praktisch:

forum_049.png


Code:
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;


public class Test5 extends JButton{
	private float alpha;
	
	public Test5( float alpha ){
		setOpaque( false );
		setText( "test" );
		this.alpha = alpha;
	}
	
	public static void main( String[] args ){
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		frame.setContentPane( new JPanel(){
			protected void paintComponent( Graphics g ) {
				g.setColor( Color.RED );
				g.fillRect( 0, 0, getWidth()/2, getHeight() );
				
				g.setColor( Color.BLUE );
				g.fillRect( getWidth()/2, 0, getWidth(), getHeight() );
			}
		});
		
		frame.getContentPane().setLayout( new GridLayout( 11, 1 ) );
		for( int i = 0; i <= 10; i++ ){
			frame.getContentPane().add( new Test5( i / 10.f ) );
		}
		frame.pack();
		frame.setVisible( true );
	}	
	
	public void paint( Graphics g ){
		Graphics2D g2 = (Graphics2D)g.create();
		g2.setComposite( AlphaComposite.getInstance( AlphaComposite.SRC_OVER, alpha ) );
		super.paint( g2 );
	}
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben