功能说明 代码实现了多种幻灯片变换特效 如 淡入淡出 缓慢覆盖 旋转覆盖等 多种变换效果
功能实现
图片加载类ImageLoader实现
)用阻塞队列存储要图片 BlockingQueue images = new ArrayBlockingQueue<>( )
)用图片eof表示图片队列结束 Image eof = new WritableImage( )
)循环读取指定图片 由于是阻塞队列 所以当队列满的时候线程会自动阻塞
public void run() {
int id =
try {
while (true) {
String path = resources[id]
InputStream is = getClass() getResourceAsStream(path)
if (is != null) {
Image image = new Image(is width height true true)
if (!image isError()) {
images put(image)
}
}
id++
if (id >= resources length) {
id =
}
}
} catch (Exception e) {
} finally {
if (!cancelled) {
try {
images put(eof)
} catch (InterruptedException e) {
}
}
}
}
特效实现 以弧形切换图片为例 首先定义LengthTransition变化特效 设置变化时间 以及弧度数跟时间的变化关系
class LengthTransition extends Transition {
Arc arc
public LengthTransition(如碰孙Duration d Arc arc) {
this arc = arc
setCycleDuration(d)
}
@Override
protected void interpolate(double d) {
arc setLength(d * )
}
}
然后设置图片层叠效果
group setBlendMode(BlendMode SRC_OVER)
next setBlendMode(BlendMode SRC_ATOP)
以及之前那张图片的吵隐淡出特效
FadeTransition ft = new FadeTransition(Duration seconds( ) mask )
最后同时执行这两个特效渣链
ParallelTransition pt = new ParallelTransition(lt ft)
效果图
import javax.swing.JFrameimport javax.swing.JLabel
import javax.swing.JPanel
public class Test{
private JFrame frame
private String scrolledText
private String str ="滚动文字 Demo"
public static void main(String args[]) {
try{
Test window = new Test()
window.frame.setVisible(true)
}
catch(Exception e){
e.printStackTrace()
}
}
public Test(){
initialize()
}
private void initialize(){
frame.setBounds(100, 100, 500, 375)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
final JPanel panel = new JPanel()
panel.setBackground(Color.WHITE)
panel.setLayout(new BorderLayout())
frame.getContentPane().add(panel, BorderLayout.NORTH)
final JLabel label = new JLabel()
label.setText("New JLabel")
panel.add(label)
label_scrolledText(label)
frame.addComponentListener(
new ComponentAdapter(){
public void componentResized(ComponentEvent arg0){
label_scrolledText(label)
}
})
}
public void label_scrolledText(JLabel label) {
this.scrolledText = this.str
label.setText(scrolledText)
FontMetrics metrics = label.getFontMetrics(label.getFont())
int textW = metrics.stringWidth(label.getText())
Dimension frameSize = frame.getSize()
for (int i = 1i <= (frameSize.width - textW) / 3 - 3i++)
scrolledText += " "
label.setText(scrolledText)
Thread thread = new Thread(new TextChanger(label))
thread.start()
}
}
java.lang.NullPointerException
at Test.initialize(Test.java:26)
at Test.<init>(Test.java:23)
at Test.main(Test.java:16)
一个脚本 QQ空间不支持你找个FLASH带JAVA脚本的 然掘闭物后找出正确地址.
然后在QQ空间的自判液定义 添加模块 FLASH模块里
把地址复制上点确定 再托大到合适角度 一样有这样的效果
QQ空间代态桥码的网站都有 百度一找一堆!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)