
正文
歌词滚动的Java代码 java歌词滚动字幕
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
JAVA JTextAra如何自动滚动
在加入或减少文字行数歌词滚动的Java代码的时候
加入下面歌词滚动的Java代码的代码就可以歌词滚动的Java代码了
js.getVerticalScrollBar().setValue(js.getVerticalScrollBar().getMaximum());
相关问答
Q1: 什么代码可以让QQ音乐歌词自动滚动起来?
歌词前面加上代码[00:00:00] 几分几秒想要出现歌词滚动的Java代码的歌词,就可以歌词滚动的Java代码了。时间设置好歌词滚动的Java代码了 自然就出现了
Q2: 用Java编写一个字符串循环滚动的程序
java里面有一个叫做Timer的东西
代码找到了:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
////////////////////////////////////////////////////////////
public class AnimationDemo extends JFrame{
AnimationDemo(){
add(new MPanel("我是要移动的文字"));
}
////////////////////////////////////////////////////////////
public static void main(String[] args){
JFrame frame=new AnimationDemo();
frame.setTitle("AnimationDemo");
frame.setSize(280, 100);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
/////////////////////////////////////////////////////////////
static class MPanel extends JPanel{
private String message="welcome to java!";
private int xZuoBiao=0;
private int yZuoBiao=30;
//...........................................................
public MPanel(String message){
this.message=message;
Timer timer=new Timer(100,new TimerListener());
timer.start();
}
//............................................................
protected void paintComponent(Graphics g){
super.paintComponent(g);
if(xZuoBiaogetWidth()){
xZuoBiao=-20;
}
xZuoBiao+=10;
g.drawString(message, xZuoBiao, yZuoBiao);
}
//.............................................................
class TimerListener implements ActionListener{
public void actionPerformed(ActionEvent e){
repaint();
}
}
}
}
Q3: java解析lrc文件代码
lrc可以通过如下util工具类进行转换歌词滚动的Java代码,如果想知道结果是否读取歌词滚动的Java代码的有问题,可以直接用记事本打开lrc文件的,之后和输出结果比对一下就行。
package com.routon.utils;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.util.Log;
/**
* parse lrc file tool
* eg歌词滚动的Java代码:
* utilLrc lrc = new utilLrc("/sdcard/test.lrc");
* get song name : String title = lrc.getTitle();
* get performer name : String artist = lrc.getArtist();
* get album name: String album = lrc.getAlbum();
* get lrcmaker name: String lrcMaker = lrc.getLrcMaker();
* get song list: ListStatement list = lrc.getLrcList();
*
* @author xuweilin
*
*/
public class utilLrc {
private static String TAG = "utilLrc";
public class Statement {
private double time = 0.0; //time, 0.01s
private String lyric = ""; //song word
/*
* get time
*/
public double getTime() {
return time;
}
/*
* set time
*/
public void setTime(double time) {
this.time = time;
}
/*
* set time.format:mm:ss.ms
*/
public void setTime(String time) {
String str[] = time.split(":|\\.");
this.time = Integer.parseInt(str[0])*60+Integer.parseInt(str[1])+Integer.parseInt(str[2])*0.01;
}
/*
* get lrc word
*/
public String getLyric() {
return lyric;
}
/*
* set lrc word
*/
public void setLyric(String lyric) {
this.lyric = lyric;
}
}
private BufferedReader bufferReader = null;
private String title = "";
private String artist = "";
private String album = "";
private String lrcMaker = "";
private ListStatement statements = new ArrayListStatement();
/*
*
* fileName
*/
public utilLrc(String fileName) throws IOException{
FileInputStream file = new FileInputStream(fileName);
bufferReader = new BufferedReader(new InputStreamReader(file, "utf-8"));
readData();
}
/*
* read the file
*/
private void readData() throws IOException{
statements.clear();
String strLine;
while(null != (strLine = bufferReader.readLine()))
{
if("".equals(strLine.trim()))
{
continue;
}
if(null == title || "".equals(title.trim()))
{
Pattern pattern = Pattern.compile("\\[ti:(.+?)\\]");
Matcher matcher = pattern.matcher(strLine);
if(matcher.find())
{
title=matcher.group(1);
continue;
}
}
if(null == artist || "".equals(artist.trim()))
{
Pattern pattern = Pattern.compile("\\[ar:(.+?)\\]");
Matcher matcher = pattern.matcher(strLine);
if(matcher.find())
{
artist=matcher.group(1);
continue;
}
}
if(null == album || "".equals(album.trim()))
{
Pattern pattern = Pattern.compile("\\[al:(.+?)\\]");
Matcher matcher = pattern.matcher(strLine);
if(matcher.find())
{
album=matcher.group(1);
continue;
}
}
if(null == lrcMaker || "".equals(lrcMaker.trim()))
{
Pattern pattern = Pattern.compile("\\[by:(.+?)\\]");
Matcher matcher = pattern.matcher(strLine);
if(matcher.find())
{
lrcMaker=matcher.group(1);
continue;
}
}
int timeNum=0;
String str[] = strLine.split("\\]");
for(int i=0; istr.length; ++i)
{
String str2[] = str[i].split("\\[");
str[i] = str2[str2.length-1];
if(isTime(str[i])){
++timeNum;
}
}
for(int i=0; itimeNum;++i)
{
Statement sm = new Statement();
sm.setTime(str[i]);
if(timeNumstr.length)
{
sm.setLyric(str[str.length-1]);
}
statements.add(sm);
}
}
sortLyric();
}
/*
* judge the string is or not date format.
*/
private boolean isTime(String string)
{
String str[] = string.split(":|\\.");
if(3!=str.length)
{
return false;
}
try{
for(int i=0;istr.length;++i)
{
Integer.parseInt(str[i]);
}
}
catch(NumberFormatException e)
{
Log.e(TAG, "isTime exception歌词滚动的Java代码:"+e.getMessage());
return false;
}
return true;
}
/*
* sort the word by time.
*/
private void sortLyric()
{
for(int i=0;istatements.size()-1;++i)
{
int index=i;
double delta=Double.MAX_VALUE;
boolean moveFlag = false;
for(int j=i+1;jstatements.size();++j)
{
double sub;
if(0=(sub=statements.get(i).getTime()-statements.get(j).getTime()))
{
continue;
}
moveFlag=true;
if(subdelta)
{
delta=sub;
index=j+1;
}
}
if(moveFlag)
{
statements.add(index, statements.get(i));
statements.remove(i);
--i;
}
}
}
/**
* get title
* @return
*/
public String getTitle(){
return title;
}
/**
* get artist
* @return
*/
public String getArtist(){
return artist;
}
/**
* get album
* @return
*/
public String getAlbum(){
return album;
}
/**
* get lrc maker
* @return
*/
public String getLrcMaker(){
return lrcMaker;
}
/**
* get song list
* @return
*/
public ListStatement getLrcList(){
return statements;
}
}
Q4: 怎么用marquee怎样实现文字的连续滚动?中间没有间隔是 ,如果不能实现用JAVA怎么实现????!
MARQUEE
元素歌词滚动的Java代码的默认宽度与其父元素的宽度相等。如果
MARQUEE
位于没有指定宽度的
TD
内,歌词滚动的Java代码你就需要明确设置
MARQUEE
的宽度。如果
MARQUEE
和
TD
的宽度都没有指定,那么滚动字幕就将限定于
1
个像素宽。
要创建垂直滚动的字幕,请将其
scrollLeft
属性设定为
0。要创建水平滚动的字幕,请将其
scrollTop
属性设定为
0,这将覆盖任何脚本设置。
scrollLeft
和
scrollTop
属性当字幕滚动时为只读。当不处于滚动状态时,scrollLeft
对于设置为水平滚动的字幕来说为可读写,scrollTop
对于设置为垂直滚动的字幕来说为可读写。
此元素在
Microsoft®
Internet
Explorer
3.0
的
HTML
中可用,在
Internet
Explorer
4.0
的脚本中可用。
此元素是块元素。
此元素需要关闭标签。
示例
下面的例子使用了
MARQUEE
元素创建了由左向右的滚动字幕,移动速度为每
200
毫秒
10
像素。
MARQUEE
DIRECTION=RIGHT
BEHAVIOR=SCROLL
SCROLLAMOUNT=10
SCROLLDELAY=200
这是一个滚动字幕。
/MARQUEE
下面的例子显示了
marquee
元素的
scrollLeft
和
scrollTop
属性的一些用途。
MARQUEE
id=m1
direction=right
style="border-width:2px;border-style:solid;"
width=200
height=200向右/MARQUEEBR
!--
单击此按钮可在字幕滚动时读取
scrollLeft
和
scrollTop
属性的值。
--
BUTTON
onclick="alert('scrollLeft:
'
+
m1.scrollLeft
+
'
scrollRight:
'
+
m1.scrollTop)"
读取/BUTTON
!--
当字幕停止时,你可以设置水平字幕的
scrollLeft,或者设置垂直字幕的
scrollTop。
--
BUTTON
onclick="m1.stop();m1.scrollLeft
=
190;"停止并设置
scrollLeft=190/BUTTON
BUTTON
onclick="m1.start();"开始/BUTTON
歌词滚动的Java代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java歌词滚动字幕、歌词滚动的Java代码的信息别忘了在本站进行查找喔。






