📄 piano.java
字号:
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Piano extends Applet implements ActionListener
{
public void init()
{
byte byte0 = 12;
byte byte1 = 21;
byte byte2 = 15;
byte byte3 = 20;
byte byte4 = 100;
byte byte5 = 5;
byte byte6 = 16;
byte byte7 = 66;
byte byte8 = 21;
byte byte9 = 15;
char c = '\216';
sound[0] = "w0.au";
sound[1] = "w1.au";
sound[2] = "w2.au";
sound[3] = "w3.au";
sound[4] = "w4.au";
sound[5] = "w5.au";
sound[6] = "w6.au";
sound[7] = "w7.au";
sound[8] = "w8.au";
sound[9] = "w9.au";
sound[10] = "w10.au";
sound[11] = "w11.au";
sound[12] = "w12.au";
sound[13] = "w13.au";
sound[14] = "w14.au";
sound[15] = "w15.au";
sound[16] = "w16.au";
sound[17] = "w17.au";
sound[18] = "w18.au";
sound[19] = "w19.au";
sound[20] = "w20.au";
soundb[0] = "b0.au";
soundb[1] = "b1.au";
soundb[2] = "b2.au";
soundb[3] = "b3.au";
soundb[4] = "b4.au";
soundb[5] = "b5.au";
soundb[6] = "b6.au";
soundb[7] = "b7.au";
soundb[8] = "b8.au";
soundb[9] = "b9.au";
soundb[10] = "b10.au";
soundb[11] = "b11.au";
soundb[12] = "b12.au";
soundb[13] = "b13.au";
soundb[14] = "b14.au";
record[0] = -1;
for(int i = 0; i <= 49; i++)
{
memory1[i] = 0;
memory[i] = 0;
}
showStatus("欢迎使用 Java Piano!");
for(int k1 = 0; k1 <= 2; k1++)
{
for(int k = 0; k <= 6; k++)
{
play(getCodeBase(), sound[k1 * 7 + k]);
String s = "载入 ";
s = s.concat(String.valueOf(k1 * 7 + k + 1));
s = s.concat(" 21 个音符.....");
showStatus(s);
setBackground(Color.white);
show();
}
for(int l = 0; l <= 4; l++)
audio[0] = getAudioClip(getCodeBase(), soundb[k1 * 5 + l]);
}
kx[0] = 32;
color[0] = 0;
for(int i1 = 1; i1 < byte1; i1++)
{
kx[i1] = kx[0] + i1 * 20;
color[i1] = 0;
}
kbx[0] = kx[0] + byte0;
kbx[1] = kx[1] + byte0;
kbx[2] = kx[3] + byte0;
kbx[3] = kx[4] + byte0;
kbx[4] = kx[5] + byte0;
kbx[5] = kx[7] + byte0;
kbx[6] = kx[8] + byte0;
kbx[7] = kx[10] + byte0;
kbx[8] = kx[11] + byte0;
kbx[9] = kx[12] + byte0;
kbx[10] = kx[14] + byte0;
kbx[11] = kx[15] + byte0;
kbx[12] = kx[17] + byte0;
kbx[13] = kx[18] + byte0;
kbx[14] = kx[19] + byte0;
for(int j1 = 0; j1 < byte2; j1++)
colorb[j1] = 0;
clipr[0] = 0;
setSize(550, 350);
setLayout ( new BorderLayout() );
Panel ButtonPanel = new Panel ();
Panel ButtonPanel2 = new Panel ();
ButtonPanel.setLayout (new GridLayout (1, 5,0,20));
ButtonPanel2.setLayout (new GridLayout (7,1,20,0));
ButtonPanel.add(RecordButton);
ButtonPanel.add(PlayButton);
ButtonPanel.add(ClearButton);
ButtonPanel.add(SelButton);
ButtonPanel.add(AddButton);
RecordButton.addActionListener (this);
PlayButton.addActionListener (this);
ClearButton.addActionListener (this);
SelButton.addActionListener (this);
AddButton.addActionListener (this);
add (ButtonPanel, BorderLayout.SOUTH);
ButtonPanel2.add(Check1);
ButtonPanel2.add(Check2);
ButtonPanel2.add(Check3);
ButtonPanel2.add(Check4);
ButtonPanel2.add(Check5);
ButtonPanel2.add(Check6);
add (ButtonPanel2, BorderLayout.EAST);
Check4Re[0]=-1;Check44Re[0]=-1;
Check5Re[0]=-1;Check55Re[0]=-1;
Check6Re[0]=-1;Check66Re[0]=-1;
repaint();
}
public void paint(Graphics g)
{
char c = '\216';
byte byte0 = 20;
byte byte1 = 100;
byte byte2 = 5;
byte byte3 = 16;
byte byte4 = 66;
byte byte5 = 21;
byte byte6 = 15;
int ai[] = new int[11];
Image image1 = getImage(getDocumentBase(), "piano.jpg");
g.drawImage(image1, 0, 0, this);
g.setColor(Color.black);
Font nfont = new Font("宋体", 2, 30);
g.setFont(nfont);
g.drawString("欢迎使用 Java Piano", 50, 100);
g.setColor(Color.black);
Font nfont1 = new Font("宋体", 2, 14);
g.setFont(nfont1);
//g.drawString("", 50, 290);
//g.drawString("", 100, 305);
for(int i = 0; i < byte5; i++)
{
g.setColor(Color.black);
g.drawRoundRect(kx[i], c, byte0, byte1, byte2, byte2);
if(color[i] == 0)
g.setColor(Color.white);
else
g.setColor(Color.gray);
g.fillRoundRect(kx[i] + 1, c + 1, byte0 - 1, byte1 - 1, byte2, byte2);
}
for(int j = 0; j < byte6; j++)
{
g.setColor(Color.black);
g.drawRoundRect(kbx[j], c, byte3, byte4, byte2, byte2);
if(colorb[j] == 0)
g.setColor(Color.black);
else
g.setColor(Color.gray);
g.fillRoundRect(kbx[j] + 1, c + 1, byte3 - 1, byte4 - 1, byte2, byte2);
}
}
public void update(Graphics g)
{
char c = '\216';
byte byte0 = 20;
byte byte1 = 100;
byte byte2 = 5;
byte byte3 = 16;
byte byte4 = 66;
byte byte5 = 21;
byte byte6 = 15;
boolean flag = false;
if(memplay[0] == 1)
{
for(int i1 = 0; i1 <= record[0]; i1++)
{
clipr[0] = 1;
if(memory1[i1] == 2)
{
colorb[memory[i1]] = 1;
Graphics g1 = g.create();
g1.setColor(Color.gray);
g1.clipRect(kbx[memory[i1]] + 1, c + 1, byte3 - 1, byte4 - 1);
g1.fillRoundRect(kbx[memory[i1]] + 1, c + 1, byte3 - 1, byte4 - 1, byte2, byte2);
paint(g1);
play(getCodeBase(), soundb[memory[i1]]);
g1.dispose();
colorb[memory[i1]] = 0;
}
if(memory1[i1] == 3)
{
color[memory[i1]] = 1;
Graphics g2 = g.create();
g2.setColor(Color.gray);
g2.clipRect(kx[memory[i1]] + 1, c + 1, byte0 - 1, byte1 - 1);
g2.fillRoundRect(kx[memory[i1]] + 1, c + 1, byte0 - 1, byte1 - 1, byte2, byte2);
paint(g2);
g2.dispose();
play(getCodeBase(), sound[memory[i1]]);
Graphics g3 = g.create();
g3.setColor(Color.white);
g3.clipRect(kx[memory[i1]] + 1, c + 1, byte0 - 1, byte1 - 1);
g3.fillRoundRect(kx[memory[i1]] + 1, c + 1, byte0 - 1, byte1 - 1, byte2, byte2);
g3.dispose();
color[memory[i1]] = 0;
}
for(int i = 0; i < byte6; i++)
{
g.setColor(Color.black);
g.drawRoundRect(kbx[i], c, byte3, byte4, byte2, byte2);
if(colorb[i] == 0)
g.setColor(Color.black);
else
g.setColor(Color.gray);
g.fillRoundRect(kbx[i] + 1, c + 1, byte3 - 1, byte4 - 1, byte2, byte2);
}
try
{
Thread.sleep(500L);
}
catch(InterruptedException _ex) { }
}
memplay[0] = 0;
}
for(int k = 0; k < byte5; k++)
{
if(color[k] >= 1)
{
g.clipRect(kx[k] + 1, c + 1, byte0 - 1, byte1 - 1);
flag = true;
}
if(color[k] == 2)
color[k] = 0;
}
for(int l = 0; l < byte6; l++)
{
if(colorb[l] >= 1)
{
g.clipRect(kbx[l] + 1, c + 1, byte3 - 1, byte4 - 1);
flag = true;
}
if(colorb[l] == 2)
colorb[l] = 0;
}
if(!flag && clipr[0] == 1)
{
g.clipRect(120, 128, 250, 12);
clipr[0] = 0;
}
showStatus("弹琴,按琴键;记录,按Record. (最大允许 50个音符)。选择曲目,按Select");
if(record[0] != -1)
showStatus("录音重播,按PlayBack。录音清除,按Clear。录音添加,按Add。");
paint(g);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -