Revision 503
Clicking on a robot automatically selects its XBee ID for controlling
Colonet.java | ||
---|---|---|
564 | 564 |
// KeyListener methods |
565 | 565 |
// |
566 | 566 |
public void keyPressed (KeyEvent e) { |
567 |
int code = e.getKeyCode(); |
|
568 |
if (code == KeyEvent.VK_UP) { |
|
569 |
vectorController.setMaxForward(); |
|
570 |
vectorController.sendToServer(); |
|
571 |
} else if (code == KeyEvent.VK_DOWN) { |
|
572 |
vectorController.setMaxReverse(); |
|
573 |
vectorController.sendToServer(); |
|
574 |
} else if (code == KeyEvent.VK_LEFT) { |
|
575 |
vectorController.setMaxLeft(); |
|
576 |
vectorController.sendToServer(); |
|
577 |
} else if (code == KeyEvent.VK_RIGHT) { |
|
578 |
vectorController.setMaxRight(); |
|
579 |
vectorController.sendToServer(); |
|
580 |
} else if (code == KeyEvent.VK_S) { |
|
581 |
vectorController.setZero(); |
|
582 |
vectorController.sendToServer(); |
|
583 |
} |
|
567 |
//Start a new Thread to handle the KeyEvent |
|
568 |
SwingUtilities.invokeLater(new KeyHandler(e)); |
|
584 | 569 |
} |
585 | 570 |
public void keyReleased (KeyEvent e) { |
586 | 571 |
} |
587 | 572 |
public void keyTyped (KeyEvent e) { |
588 | 573 |
} |
589 | 574 |
|
590 |
|
|
591 | 575 |
// |
592 | 576 |
// ActionListener method |
593 | 577 |
// |
... | ... | |
657 | 641 |
if (r.contains(e.getX(), e.getY())) { |
658 | 642 |
selectedBot = i; |
659 | 643 |
lblSelected.setText(" " + r.id); |
644 |
// Try to select the clicked bot, if its XBee ID is detected. |
|
645 |
for (int j = 1; j < cmbRobotNum.getItemCount(); j++) { |
|
646 |
if (Integer.parseInt(cmbRobotNum.getItemAt(j).toString()) == selectedBot) |
|
647 |
cmbRobotNum.setSelectedIndex(j); |
|
648 |
} |
|
649 |
return; |
|
660 | 650 |
} |
661 | 651 |
} |
662 | 652 |
|
... | ... | |
664 | 654 |
} |
665 | 655 |
} |
666 | 656 |
|
657 |
class KeyHandler extends Thread { |
|
658 |
|
|
659 |
KeyEvent e; |
|
660 |
|
|
661 |
public KeyHandler (KeyEvent event) { |
|
662 |
super("KeyHandler"); |
|
663 |
this.e = event; |
|
664 |
} |
|
665 |
|
|
666 |
public void run () { |
|
667 |
int code = e.getKeyCode(); |
|
668 |
if (code == KeyEvent.VK_UP) { |
|
669 |
vectorController.setMaxForward(); |
|
670 |
vectorController.sendToServer(); |
|
671 |
} else if (code == KeyEvent.VK_DOWN) { |
|
672 |
vectorController.setMaxReverse(); |
|
673 |
vectorController.sendToServer(); |
|
674 |
} else if (code == KeyEvent.VK_LEFT) { |
|
675 |
vectorController.setMaxLeft(); |
|
676 |
vectorController.sendToServer(); |
|
677 |
} else if (code == KeyEvent.VK_RIGHT) { |
|
678 |
vectorController.setMaxRight(); |
|
679 |
vectorController.sendToServer(); |
|
680 |
} else if (code == KeyEvent.VK_S) { |
|
681 |
vectorController.setZero(); |
|
682 |
vectorController.sendToServer(); |
|
683 |
} |
|
684 |
} |
|
685 |
} |
|
686 |
|
|
667 | 687 |
class ActionHandler extends Thread { |
668 | 688 |
|
669 | 689 |
ActionEvent e; |
... | ... | |
1355 | 1375 |
g2d.setColor(Color.BLACK); |
1356 | 1376 |
g2d.drawRect((int)(x + width*.3), y + 2, (int)(width*.4), height - 4); |
1357 | 1377 |
//battery life rectangle |
1358 |
g2d.setColor(Color.GREEN); |
|
1378 |
if (level > 50) |
|
1379 |
g2d.setColor(Color.GREEN); |
|
1380 |
else if (level > 25) |
|
1381 |
g2d.setColor(Color.YELLOW); |
|
1382 |
else |
|
1383 |
g2d.setColor(Color.RED); |
|
1359 | 1384 |
int greenX = (int)(x + 1 + width*.3); |
1360 | 1385 |
int greenY = (int)((y+3) + Math.abs(level-100.0)*(height-6)/(100)); |
1361 | 1386 |
int greenWidth = (int)(width*.4 - 2)+1; |
Also available in: Unified diff