在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → java电子钢琴 源码

java电子钢琴 源码

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:1.85M
  • 下载次数:19
  • 浏览次数:747
  • 发布时间:2019-11-27
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】java电子钢琴 源码 实现了电脑键盘,88钢琴键。已经换肤,录音等功能。

【实例截图】

from clipboard


from clipboard


from clipboard

from clipboard


【核心代码】

package xwh.jPiano;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Properties;

import javax.swing.JFrame;
import javax.swing.UIManager;

import xwh.jPiano.util.ImgUtil;

public class MyJavaPiano extends JFrame{
	private static final long serialVersionUID = 1L;
	
	
	public static final float version=3.0f;	//软件版本号,保留1位的小数
	
	//窗口大小(最好为偶数,以免录屏软件出现提示信息。)
	public static final int w = 850;
	public static final int h = 486;
	
	
	public static Win_KeySetting win_KeySet;	//设置键弹出窗口
	public static Panel_Controls controls;
	public Menu menuBar;
	public RecordFrame recordFrame;
	public Panel_Keyboard keyboard;
	public Panel_Piano piano;
	
	
	//界面主题管理
	public GUIProperties guiProps;
	static{
		try {			
			 Properties props = new Properties();	            
	         props.put("logoString", "MyJavaPiano");
	         com.jtattoo.plaf.mcwin.McWinLookAndFeel.setCurrentTheme(props);
	         UIManager.setLookAndFeel("com.jtattoo.plaf.mcwin.McWinLookAndFeel");
			 
		} catch (Exception e1) {
			e1.printStackTrace();
		}
	}


	public static void main(String[] args) {
		MyJavaPiano jPiano = new MyJavaPiano();
		jPiano.setInitial_props();	//初始化参数
		DeviceManage.initial();		//初始化device
		jPiano.showView();		//显示界面
		
		
	}
	
	
	/**
	 * 获取初始配置文件
	 */
	private void setInitial_props(){

		ConfigManage.setInitial_props();	//获取配置
		
		guiProps = new GUIProperties(this);
		
		String theme = ConfigManage.initial_props.get("theme");
		String lookAndFeel = ConfigManage.initial_props.get("lookAndFeel");

		if(!lookAndFeel.equals("")){
			guiProps.updateLookAndFeel(lookAndFeel);
		}
		if(!theme.equals("")){
			guiProps.updateTheme(theme);
		}


	}
	
	
	/**
	 * 显示视图
	 */
	private void showView(){
		
		//设置窗口参数
		this.setTitle("MyJavaPiano_" version);
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        
        this.setLocation(screenSize.width/2 - w/2, screenSize.height/2 - h/2 50);
        this.setSize(w, h);
        this.setIconImage(ImgUtil.getImage("icons/music.png"));
        this.setVisible(true);
        this.setResizable(false);
        setLayout(new FlowLayout());
        
        

		//添加界面组件
        keyboard = new Panel_Keyboard(this);
        piano = new Panel_Piano();        
        controls = new Panel_Controls(this);
        menuBar = new Menu(this);	//菜单
        recordFrame = new RecordFrame(this);	//录音框
        win_KeySet = new Win_KeySetting();	//键设置对话框
        
        this.add(controls);
        this.add(keyboard); 
        this.add(piano);
        this.setJMenuBar(menuBar);
        
        this.validate();

        
        //添加键盘监听器。
        this.addKeyListener(new PianoKeyListener());
        this.addKeyListener(new SpecialKeyListener());
        
        //窗口事件监听
        this.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
            	DeviceManage.close();
            	ConfigManage.saveInitial_props();		//保存初始化信息
            	
            	//让NumLock恢复。    			
    			if(!Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_NUM_LOCK)){
    				Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_NUM_LOCK,true);
    			}
        		System.exit(0);
            }
            
        });
        
        
		
	}
	

}

标签:

实例下载地址

java电子钢琴 源码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 pengjinbo 发表于: 2021-12-28 16:35 24
请问有这个项目的代码解释和及视频讲解,还有这个项目的毕业论文文档

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警