AfstandbedieningPanel.java 3.0 KB

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