写了个用按钮组成的钢琴键盘 黑键有时候被白键完全覆盖  怎么才能让黑键永远覆盖在白键之上
本人是新手 不懂的还望多多指教呀
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import javax.swing.AbstractButton ;
import javax.swing.JOptionPane ;
import javax.swing.ImageIcon;
import javax.swing.*;
public class TestMusic  extends Applet implements ActionListener
{
    String oneFile="file:/d:/java eclipse/TestMusic/1.wav";
    String twoFile="file:/d:/java eclipse/TestMusic/2.wav";
    String threeFile="file:/d:/java eclipse/TestMusic/3.wav";
    String fourFile="file:/d:/java eclipse/TestMusic/4.wav";
    String fiveFile="file:/d:/java eclipse/TestMusic/5.wav";
    String sixFile="file:/d:/java eclipse/TestMusic/6.wav";
    String sevenFile="file:/d:/java eclipse/TestMusic/7.wav";
    String eightFile="file:/d:/java eclipse/TestMusic/8.wav";
    String nineFile="file:/d:/java eclipse/TestMusic/9.wav";
    String tenFile="file:/d:/java eclipse/TestMusic/10.wav";
    String elevenFile="file:/d:/java eclipse/TestMusic/11.wav";
    String twelveFile="file:/d:/java eclipse/TestMusic/12.wav";
    String thirteenFile="file:/d:/java eclipse/TestMusic/13.wav";
    
    AudioClip oneClip;
    AudioClip twoClip;
    AudioClip threeClip;
    AudioClip fourClip;
    AudioClip fiveClip;
    AudioClip sixClip;
    AudioClip sevenClip;
    AudioClip eightClip; 
    AudioClip nineClip; 
    AudioClip tenClip; 
    AudioClip elevenClip; 
    AudioClip twelveClip; 
    AudioClip thirteenClip; 
    JButton playone;
    JButton playtwo;
    JButton playthree;
    JButton playfour;
    JButton playfive;
    JButton playsix;
    JButton playseven;
    JButton playeight;
    JButton playnine;
    JButton playten;
    JButton playeleven;
    JButton playtwelve;
    JButton playthirteen;
    boolean playing =false;
    public void init()
    {
     try
     {
     oneClip=getAudioClip(new URL(oneFile));
     twoClip=getAudioClip(new URL(twoFile));
     threeClip=getAudioClip(new URL(threeFile));
     fourClip=getAudioClip(new URL(fourFile));
     fiveClip=getAudioClip(new URL(fiveFile));
     sixClip=getAudioClip(new URL(sixFile));
     sevenClip=getAudioClip(new URL(sevenFile));
     eightClip=getAudioClip(new URL(eightFile));
     nineClip=getAudioClip(new URL(nineFile));
     tenClip=getAudioClip(new URL(tenFile));
     elevenClip=getAudioClip(new URL(elevenFile));
     twelveClip=getAudioClip(new URL(twelveFile));
     thirteenClip=getAudioClip(new URL(thirteenFile));
     }
     catch(MalformedURLException e)
     {
    
     }
     playone=new JButton("");
     playtwo=new JButton("");
     playthree=new JButton("");
     playfour=new JButton("");
     playfive=new JButton("");
     playsix=new JButton("");
     playseven=new JButton("");
     playeight=new JButton("");
     playnine=new JButton("");
     playten=new JButton("");
     playeleven=new JButton("");
     playtwelve=new JButton("");
     playthirteen=new JButton("");
     ImageIcon image = new ImageIcon("1.jpg");    
     playone.setIcon(image);
     playone.addActionListener(this);
     playtwo.setIcon(image);
     playtwo.addActionListener(this);
     playthree.setIcon(image);
     playthree.addActionListener(this);
     playfour.setIcon(image);
     playfour.addActionListener(this);
     playfive.setIcon(image);
     playfive.addActionListener(this);
     playsix.setIcon(image);
     playsix.addActionListener(this);
     playseven.setIcon(image);
     playseven.addActionListener(this);
     playeight.setIcon(image);
     playeight.addActionListener(this);
     ImageIcon pic = new ImageIcon("2.jpg");
     playnine.setIcon(pic);
     playnine.addActionListener(this);
     playten.setIcon(pic);
     playten.addActionListener(this);
     playeleven.setIcon(pic);
     playeleven.addActionListener(this);
     playtwelve.setIcon(pic);
     playtwelve.addActionListener(this);
     playthirteen.setIcon(pic);
     playthirteen.addActionListener(this);
     setLayout(null);
     playone.setBounds(0, 0,25 , 200);    
     playtwo.setBounds(25, 0,25 , 200);
     playthree.setBounds(50, 0,25 , 200);
     playfour.setBounds(75, 0,25 , 200);
     playfive.setBounds(100, 0,25 , 200);
     playsix.setBounds(125, 0,25 , 200);
     playseven.setBounds(150, 0,25 , 200);
     playeight.setBounds(175, 0,25 , 200);
     playnine.setBounds(17, 0,13 , 100);
     playten.setBounds(42, 0,25 , 100);
     playeleven.setBounds(117, 0,13 , 100);
     playtwelve.setBounds(142, 0,13 , 100);
     playthirteen.setBounds(167, 0,13 , 100);
     add(playnine,-1);
     add(playten,-1);
     add(playeleven,-1);
     add(playtwelve,-1);
     add(playthirteen,-1);
     add(playone);
     add(playtwo);
     add(playthree);
     add(playfour);
     add(playfive);
     add(playsix);
     add(playseven);
     add(playeight);     
    }    public void actionPerformed(ActionEvent event)
    {
     Object source=event.getSource();
     if(source==playone)
     {
     if(oneClip!=null)
     {
     playing=true;
     oneClip.play(); 
    
     }  
     }
     else if(source==playtwo)
     {
     if(twoClip!=null)
     {
     playing=true;
     twoClip.play();    
     }  
     }
     else if(source==playthree)
     {
     if(threeClip!=null)
     {
     playing=true;
     threeClip.play();    
     }  
     }
     if(source==playfour)
     {
     if(fourClip!=null)
     {
     playing=true;
     fourClip.play();    
     }  
     }
     if(source==playfive)
     {
     if(fiveClip!=null)
     {
     playing=true;
     fiveClip.play();    
     }  
     }
     if(source==playsix)
     {
     if(sixClip!=null)
     {
     playing=true;
     sixClip.play();    
     }  
     }
     if(source==playseven)
     {
     if(sevenClip!=null)
     {
     playing=true;
     sevenClip.play();    
     }  
     }
     if(source==playeight)
     {
     if(eightClip!=null)
     {
     playing=true;
     eightClip.play();    
     }  
     }
    
     else
     {
    
     }
     if(source==playnine)
     {
     if(nineClip!=null)
     {
     playing=true;
     nineClip.play();    
     }  
     }
    
     else
     {
    
     }
     if(source==playten)
     {
     if(tenClip!=null)
     {
     playing=true;
     tenClip.play();    
     }  
     }
    
     else
     {
    
     }
     if(source==playeleven)
     {
     if(elevenClip!=null)
     {
     playing=true;
     elevenClip.play();    
     }  
     }
    
     else
     {
    
     }
     if(source==playtwelve)
     {
     if(twelveClip!=null)
     {
     playing=true;
     twelveClip.play();    
     }  
     }
    
     else
     {
    
     }
     if(source==playthirteen)
     {
     if(thirteenClip!=null)
     {
     playing=true;
     thirteenClip.play();    
     }  
     }
    
     else
     {
    
     }
     return;
    
    }}

解决方案 »

  1.   

    在添加组件(add)的时候,先添加黑键,再添加白键,这样黑键就会覆盖在白键上面了。
      

  2.   

    怎么先添加?  是先ADD黑键的按钮吗?  
      

  3.   

    嗯,即使add的时候先添加黑的,在添加白的,这是最简单的解决方式。。
    以前做简单java游戏的时候就是这样解决的。
      

  4.   


    我的代码里面add(playnine);
          add(playten);
          add(playeleven);
          add(playtwelve);
          add(playthirteen);这几个都是黑键按钮,都是在白键按钮之前的,为什么黑键还是会被白键覆盖呀?程序刚运行的时候黑键还有显示但是当鼠标移过后白键就会覆盖黑键,有时候有黑键覆盖白键,这是什么情况