[Java]吉他谱浏览器 0.1

来源:互联网 发布:逆战刷nz点软件 编辑:程序博客网 时间:2024/04/18 17:07

需求介绍:喜欢弹吉他的朋友应该有这样的体会,对于一些图片类型的吉他谱,一首曲子通常有好几页,这时如果在弹吉他时翻页的话会影响自己演奏。解决方案有两个并各有缺陷。

1、提供自动向下滚动功能  (下滚速度不好设置,需根据曲子速度来调)  2、把几张图片同时显示在显示器中(每张图片的大小需要自己调节)

目前,我想采用第二中方法,把几张吉他谱同时放在一个JFrame中,做一个较为通用吉他谱图片浏览器。

预计要学习的内容,利用JFileChooser读取多个图片,使图片按比例缩放,根据平均分布在Frame中。


下面是0.1版本的代码

代码实现了一个包含一个按钮的窗体,通过点击按钮可以选择文件,选中文件后。窗体将全屏最大化,并按照设定大小来显示吉他谱图片。

下一步工作:可以一次性添加多个吉他谱图片,并根据比例大小显示在窗体中。

/** *  */package guitarchordsviewer;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import javax.swing.*;/** * @author wangyubin *建一个Frame 正中间有一个按钮用于打开文件。 *  待实现:  打开一个吉他谱图片,按照指定的比例和位置放到Frame中  (已实现) */public class GuitarChordsViewer {/** * @param args *///定义主窗体JFrame jf=new JFrame("吉他谱浏览器");//定义打开文件按钮JButton inputButton=new JButton("打开文件");//定义用于浏览图片的labelJLabel label=new JLabel();//定义文件选择器JFileChooser chooser=new JFileChooser(new File("C:\\Users\\wangyubin\\Pictures\\GuitarChords\\")); //注意这里的路径中的\必须用\\来表示,否则\将被认为是转义符号//用于初始化的方法public void init(){   inputButton.setPreferredSize(new Dimension(300,100));inputButton.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent event) {// TODO 自动生成的方法存根int result=chooser.showDialog(jf,"打开吉他谱图片文件"); //点击按钮出现打开文件对话框  返回一个int值,用于判断用户的选择//如果用户选择了同意按钮,即打开,保存的等效按钮  检测该事件发生了再变化label // 当用户选择了打开时,事件发生if(result==JFileChooser.APPROVE_OPTION){String name =chooser.getSelectedFile().getPath(); //获得所选文件的路径//显示指定图片通过设置label的图标来让它显示图片 ImageIcon icon=new ImageIcon(name);icon.setImage(icon.getImage().getScaledInstance(960,1080,Image.SCALE_DEFAULT));label.setIcon(icon);inputButton.setVisible(false);//让打开文件按钮不可见jf.setExtendedState(JFrame.MAXIMIZED_BOTH);//使Frame全屏}}});jf.add(label); jf.add(inputButton,"South");//把按钮放在中间jf.pack();//把Frame设置为适应内部组件大小jf.setVisible(true);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String[] args) {// TODO 自动生成的方法存根new GuitarChordsViewer().init();}}


0 0
原创粉丝点击