일부 단추가있는 패널을 설계했습니다. 버튼에는 ActionListener가 첨부됩니다. 이 버튼을 클릭하면이 ActionListener는이 단일 클릭에 대해 4 개의 이벤트를 감지합니다. 반면에 그것은 하나만 탐지해야합니다. 정확히 그 이유가 누구인지 압니까?조치 수신기가 단일 이벤트에 대해 여러 이벤트를 감지했습니다.
public class Buttons extends JPanel
{
private JButton undo=new JButton("Undo");
private JButton replay=new JButton("Replay");
public void paint(Graphics g)
{
super.paint(g);
super.setSize(new Dimension(560,30));
super.add(replay);
super.add(undo);
undo.setBorder(new LineBorder(Color.WHITE,3));
replay.setBorder(new LineBorder(Color.WHITE,3));
undo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
Controler.pieces.undo();
Controler.reDraw();
}
});
replay.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.out.println("Dastiii");
}
});
}
}
이러한 이벤트는 귀하가 paint
방법에서 당신에게 ActionListener
의 등록을 여기
public void undo()
{
System.out.print(Controler.allMoves.size());
if(Controler.allMoves.size()<=1)
{
init_board();
return;
}
Piece temp[][]=Controler.allMoves.get(Controler.allMoves.size()-2);
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
board[i][j].set_name(temp[i][j].get_name());
board[i][j].set_oneWay(temp[i][j].get_oneWay());
}
}
Controler.allMoves.remove(Controler.allMoves.size()-2);
}
질문에 코드를 추가하십시오. –
아마도 'buttonDown','buttonPressed', 'buttonUp'과 같은 것을 감지 할 것입니다. – csmckelvey
@csmckelvey 버튼이있는 actionlistener를 추가했습니다. ** buttonDown ** 또는 다른 일부는 마우스 수신기에 연결되어 있습니다. 내가 맞습니까? –