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

【实例截图】

【核心代码】

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钢琴_java电子钢琴 源码相关推荐

  1. 计算机毕业设计Java汇美食电子商城(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java汇美食电子商城(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java汇美食电子商城(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 开 ...

  2. java淘金者_Java游戏淘金者源码JAVA游戏源码下载

    Java游戏淘金者源代码!外国网站的东西.部份代码配合了C语言,游戏很小,想学习的朋友值得看一看. Java游戏淘金者源码 (1 folders, 2 files, 1.38 KB, 144.41 K ...

  3. java 闹钟_JAVA可视化闹钟源码

    1 packageClock;2 3 importsun.audio.AudioPlayer;4 importsun.audio.AudioStream;5 6 import javax.swing. ...

  4. java钢琴键_javapiano Java Piano模拟钢琴效果的完整源码 联合开发网 - pudn.com

    javapiano 所属分类:Java编程 开发工具:Java 文件大小:32KB 下载次数:10 上传日期:2014-04-15 21:09:50 上 传 者:王小强 说明:  Java Piano ...

  5. 基于JAVA的电子通讯录+源码+毕业设计+课程设计

    源码地址:JAVA+SQL+电子通讯录+源码+毕业设计 随着信息时代的到来,人们越来越注重通讯方式的快捷性和高效性.在这样的背景下,电子通讯录应运而生,成为人们生活中不可或缺的工具.在这篇文章中,我们 ...

  6. JAVA计算机毕业设计手机电子商城源码+系统+mysql数据库+lw文档

    JAVA计算机毕业设计手机电子商城源码+系统+mysql数据库+lw文档 JAVA计算机毕业设计手机电子商城源码+系统+mysql数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Ja ...

  7. java计算机毕业设计手机电子商城源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计手机电子商城源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计手机电子商城源码+系统+数据库+lw文档+mybatis+运行部署 本源码技术栈: 项目 ...

  8. 模仿Hibernate的逆向工程_java版_源码下载

    在这篇blog:"Hibernate逆向工程原理_java版本"中谈到了Hibernate逆向工程原理. 我喜欢理论和实践相结合....so,今天我试着模仿hibernate的逆向 ...

  9. 计算机毕业设计Java的健身房管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java的健身房管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java的健身房管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 ...

最新文章

  1. 用Windows系统实现RAID功能
  2. 开源,是一种新的平台之战
  3. 聊聊spring cloud的DefaultEurekaServerContext
  4. 外部类的静态成员不允许直接使用非静态内部类
  5. 守护进程和inetd(转)
  6. LeetCode_数组_简单题
  7. 【Python】TensorBoard已发送内容的清除
  8. linux关闭cups命令,使用linux的cupsenable命令启动指定的打印机
  9. Git中的“起源”是什么?
  10. Codeforces Round #190 (Div. 1): E. Ciel and Gondolas(决策单调性DP+wqs二分)
  11. 基于java springboot 活动报名微信小程序源码
  12. 基于bp神经网络的房价预测,房价预测 神经网络
  13. wpf 监听退出事件_如何监听WPF的WebBrowser控件弹出新窗口的事件
  14. Pytorch iter问题
  15. 切西瓜法实现微信抢红包功能
  16. 2005年10月--至今 开发过的项目
  17. IOS 使用TestFlight 详解
  18. 电脑神器推荐 地表最强播放器 (文末附下载资源)
  19. Project Web Access ActiveX控件 安装
  20. 回溯算法---过河问题(商人过河)

热门文章

  1. threejs加载C4D模型及材质渲染实例
  2. vue3+ts issue —— vue.ts 不是模块。
  3. 绿盟python测试实习面试
  4. LabVIEW编程LabVIEW开发和利时伺服驱动电机MS系列例程与相关资料
  5. MT8788/MT6771/MT8766硬件相同怎样实现单双卡共用同一个image
  6. j-link使用(持续更新)
  7. CRC32加密算法原理
  8. 自然语言处理工具之一: NiuParser: 中文句法语义分析系统
  9. 服务器基础维护知识试题及答案,计算机基础知识试题及答案(2)
  10. 百度的绿萝算法对于买卖链接及链接作弊的网站都做出了一系列的限制措施