AfstandbedieningPanel.java 3.5 KB

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