我试图显示日历,如果我单击右键,我想更改该按钮的颜色。实际上我要去一个弹出菜单,但是我怎么知道哪个按钮首先被点击了呢?
panel1date.setLayout(new GridLayout(6,7));
for(int i=0; i<btnArr.length;i++){
    btnArr[i] = new Button("");
    btnArr[i].addMouseListener(new MemoHandler());
    panel1date.add(btnArr[i]);
}
btnPrevMon.addActionListener(new BtnEventHandler());
btnNextMon.addActionListener(new BtnEventHandler());
void setDays(Calendar date){
    int year = date.get(Calendar.YEAR);
    int month = date.get(Calendar.MONTH);
    lblYearMon.setText(year+"year+"+(month+1)+"month");
    Calendar sDay = Calendar.getInstance();
    sDay.set(year, month, 1);
    sDay.add(Calendar.DATE, -sDay.get(Calendar.DAY_OF_WEEK)+1);
    for(int i=0; i<btnArr.length; i++, sDay.add(Calendar.DATE, 1)){
        int day = sDay.get(Calendar.DATE);
        btnArr[i].setLabel(day+"");
        if(sDay.get(Calendar.MONTH)!=month) {
            btnArr[i].setBackground(Color.lightGray);
        } 
        else {
            btnArr[i].setBackground(Color.white);
        }
    }
}
class BtnEventHandler implements ActionListener{
    public void actionPerformed(ActionEvent ae) {
        String msg = tf1.getText();
        Button src = (Button)ae.getSource();
        if(src==btnPrevMon) {
            curMon.add(Calendar.MONTH, -1);
        }
        else
            if(src==btnNextMon) {
                curMon.add(Calendar.MONTH, 1);
                setDays(curMon);
                repaint();
            }
    }
    class EventHandler extends FocusAdapter implements ActionListener {
        public void actionPerformed(ActionEvent ae) {
            String msg = tf1.getText();
            if("".equals(msg))
                return;
            if(dataOut!=null) {
                try {
                    dataOut.writeUTF(nickname+">"+msg);
                }
                catch(IOException e) {
                }
            }
            ta1.append("\r\n" + nickname +">"+ msg);
            tf1.setText("");
        }
    }
    class MemoHandler extends MouseAdapter implements MouseListener{
        public void mouseClicked(MouseEvent e){
            if (e.getButton() == MouseEvent.BUTTON1)
                diarymemo = new DiaryButtonMemo(Client.server_ip, Client.server_port);
            if (e.getButton() == MouseEvent.BUTTON3)
                btnArr[].setBackground(Color.RED);
        }
    }
    public static void main(String[] args) {
        DiaryClient di = new DiaryClient();
    }
    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub
    }
}