一个lrc修改器

来源:互联网 发布:笔记本怎么激活windows 编辑:程序博客网 时间:2024/04/30 05:53
 
因为想整理一下Garnet Crow的歌词,就是在日语歌词后面加上一些翻译的句子.比如:
[00:18.64]いち.に.さん.
[00:19.12]
变成
[00:18.64]いち.に.さん.
[00:18.88](一、二、三)
[00:19.12]

不止要一句句粘帖,还要计算前面的时间,上百首歌感觉挺麻烦的。所以就写了这么一个程序


使用起来很简单,就是在左边的文本域里粘贴lrc的歌词,记住没有右键得用ctrl+v;也可以从菜单的文件-->打开...来打开lrc歌词.不过我是一直从千千静听里复制过来,修改后在复制回去的.在右边的文本域里粘贴准备插入的文本.然后在开始转换之前,将光标放置在左边文本,准备开始插入的那一行上面,具体看下图:


然后就可以点转换了。转换后效果如图:


这时可以点保存把lrc保存起来,而我呢,都是ctrl+a,ctrl+c,然后ctrl+v到千千静听里面.


当然了,有问题的话可以点撤销回到转换前的状态。

程序bug很多,只可以保证按步骤做没问题而已。

程序比较简单,用了3个类。GUI一个类,一个链表,还有一个专门转换[xx:xx.xx]的。主要思路就是用两条链表分别保存两个JTextArea每一行的文本。转换时,就是在第一条链表的节点后面依次添加第二条链表的节点。唯一的智能就是会自动跳过空行。。。

源码太长就不贴了。
可以从这里下载:

简易lrc修改器.rar

不过有一个功能我觉得挺好用,不过java的api里没有,就是返回JTextArea中光标所在的行标。所以自己写了一个方法。

public static int getCaretRow(JTextArea t)

{ int n=1;

String s=t.getText();

for(int i=0;i<t.getcaretposition();i++)

{

if(s.charat(i)=='/n')

n++

}

return n;

}

原创粉丝点击