AfstandbedieningPanel.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. package panel;
  2. import java.awt.Color;
  3. import java.awt.FlowLayout;
  4. import java.awt.GridLayout;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.awt.event.KeyEvent;
  8. import java.awt.event.KeyListener;
  9. import javax.swing.BoxLayout;
  10. import javax.swing.ImageIcon;
  11. import javax.swing.JButton;
  12. import javax.swing.JLabel;
  13. import javax.swing.JPanel;
  14. import javax.swing.JSlider;
  15. import javax.swing.JTextField;
  16. import customComponents.ComWriter;
  17. public class AfstandbedieningPanel extends JPanel {
  18. private JSlider slider;
  19. private JTextField current;
  20. private JPanel richtingPanel;
  21. private ComWriter bluetooth;
  22. public AfstandbedieningPanel(ComWriter comwriter){
  23. super();
  24. this.bluetooth = comwriter;
  25. setLayout(new BoxLayout(this,BoxLayout.PAGE_AXIS));
  26. richtingPanel = new JPanel(new GridLayout(3,3));
  27. richtingPanel.setBackground(Color.BLACK);
  28. add(richtingPanel);
  29. String[]naam = {"omhoog","links","stopButton","rechts","omlaag"};
  30. ImageIcon[] plaatjes = getPlaatjes(naam);
  31. boolean[]array = {false,true,false,
  32. true,true,true,
  33. false,true,false};
  34. char[]characters = {'v','l','s','r','a'};
  35. makeRichtingPanel(array, characters, plaatjes);
  36. JPanel sliderPanel = new JPanel();
  37. sliderPanel.setBackground(Color.GRAY);
  38. add(sliderPanel);
  39. slider = new JSlider(0,100,50);
  40. slider.setPaintLabels(true);
  41. slider.setPaintTicks(true);
  42. slider.setMajorTickSpacing(10);
  43. slider.setBackground(Color.GRAY);
  44. sliderPanel.add(slider);
  45. JPanel buttonPanel = new JPanel(new FlowLayout());
  46. buttonPanel.setBackground(Color.GRAY);
  47. add(buttonPanel);
  48. JLabel currentLabel = new JLabel("Huidige Snelheid: ");
  49. buttonPanel.add(currentLabel);
  50. current = new JTextField(2);
  51. current.setText(""+slider.getValue());
  52. current.setEnabled(false);
  53. buttonPanel.add(current);
  54. JButton toevoegen = new JButton("zet snelheid");
  55. toevoegen.addActionListener(new ActionListener(){
  56. public void actionPerformed(ActionEvent e) {
  57. verzendSnelheid(slider.getValue());
  58. }
  59. });
  60. buttonPanel.add(toevoegen);
  61. this.setFocusable(true);
  62. this.addKeyListener(new KeyListener(){
  63. public void keyTyped(KeyEvent e) {
  64. }
  65. public void keyReleased(KeyEvent e) {
  66. }
  67. public void keyPressed(KeyEvent e) {
  68. if(e.getKeyCode() == KeyEvent.VK_UP){
  69. //System.out.println("v");
  70. bluetooth.writeString('v');
  71. }
  72. else if(e.getKeyCode() == KeyEvent.VK_DOWN){
  73. //System.out.println("a");
  74. bluetooth.writeString('a');
  75. }
  76. else if(e.getKeyCode() == KeyEvent.VK_LEFT){
  77. //System.out.println("l");
  78. bluetooth.writeString('l');
  79. }
  80. else if(e.getKeyCode() == KeyEvent.VK_RIGHT){
  81. //System.out.println("r");
  82. bluetooth.writeString('r');
  83. }
  84. else if(e.getKeyCode() == KeyEvent.VK_SPACE){
  85. //System.out.println("s");
  86. bluetooth.writeString('s');
  87. }
  88. }
  89. });
  90. }
  91. public void setCurrentSlider(int waarde){
  92. slider.setValue(waarde);
  93. current.setText(waarde+"");
  94. }
  95. public int getCurrentSlider(){
  96. return slider.getValue();
  97. }
  98. public ImageIcon[] getPlaatjes(String[]naam){
  99. ImageIcon[]plaatjes = new ImageIcon[naam.length];
  100. for(int n = 0; n < plaatjes.length; n++){
  101. plaatjes[n] = new ImageIcon("pictures/"+naam[n]+".png");
  102. }
  103. return plaatjes;
  104. }
  105. public JButton makeButton(ImageIcon plaatje,final char charac){
  106. JButton button = new JButton(plaatje);
  107. button.setContentAreaFilled(false);
  108. button.setFocusPainted(false);
  109. button.setFocusable(false);
  110. button.addActionListener(new ActionListener(){
  111. @Override
  112. public void actionPerformed(ActionEvent e) {
  113. //bluetooth.writeString(""+charac);
  114. System.out.println(charac);
  115. }
  116. });
  117. return button;
  118. }
  119. public JLabel makeLabel(){
  120. JLabel label = new JLabel();
  121. label.setBackground(getBackground());
  122. return label;
  123. }
  124. public void makeRichtingPanel(boolean[]array,char[]characters,ImageIcon[]plaatjes){
  125. int teller = 0;
  126. for(boolean check : array){
  127. if(check){
  128. JButton button = makeButton(plaatjes[teller], characters[teller]);
  129. richtingPanel.add(button);
  130. teller++;
  131. }
  132. else{
  133. JLabel label = makeLabel();
  134. richtingPanel.add(label);
  135. }
  136. }
  137. }
  138. public String verzendSnelheid(int snelheid){
  139. String st = ""+snelheid;
  140. current.setText(st);
  141. st="f"+snelheid;
  142. return st;
  143. }
  144. }