Guest User

Untitled

a guest
Apr 25th, 2019
84
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package de.kartenspiel.gui;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.CardLayout;
  5. import java.awt.Color;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8.  
  9. import javax.swing.JButton;
  10. import javax.swing.JMenu;
  11. import javax.swing.JMenuBar;
  12. import javax.swing.JMenuItem;
  13. import javax.swing.JPanel;
  14. import javax.swing.JSlider;
  15. import javax.swing.event.ChangeEvent;
  16. import javax.swing.event.ChangeListener;
  17.  
  18. public class Messungen extends JPanel implements ActionListener,ChangeListener {
  19. private JPanel anzeige = new JPanel();
  20. private JPanel navigation = new JPanel();
  21.  
  22. // Buttons Navigation //Hier vielleicht statt Beschriftung ein Image?
  23. private JButton vor; // wird später initialisiert, nu um zu zeigen dass das geht
  24. private JButton zurueck;
  25. private JButton anfang;
  26. private JButton ende; // aller letzte zugefügte element des kartenstapels
  27. private JMenuBar reglerMenuLeiste = new JMenuBar();
  28. private JMenu reglerMenu = new JMenu("Regler");
  29. private JMenuItem[] reglerArray;
  30. private JMenuItem mSchlingel = new JMenuItem("mSchlingel");
  31.  
  32. // Schieberegler in Array
  33. private JSlider[] regler = new JSlider[5];
  34.  
  35. // Layout NICHT als anonymes Objekt, Layout Objekt wird für Navigation gebraucht
  36. private CardLayout stapelVerwaltung;
  37.  
  38. public Messungen() {
  39. anzeige.setOpaque(true);
  40. this.setLayout(new BorderLayout(5, 5));
  41. bauenNavigation();
  42. bauenAnzeige();
  43. bauenReglerMenuLeiste();
  44. bauenReglerMenu();
  45. bauenGesamt();
  46. // bauenJSliderRGB();
  47. // bauenSliderListener();
  48. // stateChanged();
  49. // regler[2].addChangeListener(ce -> r.refresh());
  50. }
  51.  
  52.  
  53. public void stateChanged(ChangeEvent event) {
  54. int value = regler[2].getValue();
  55. if (value == 0) {
  56. System.out.println("0");
  57. } else if (value > 0 && value <= 30) {
  58. System.out.println("value > 0 && value <= 30");
  59. } else if (value > 30 && value < 80) {
  60. System.out.println("value > 30 && value < 80");
  61. } else {
  62. System.out.println("max");
  63. }
  64. }
  65.  
  66.  
  67.  
  68. //public void stateChanged(ChangeEvent evt) {
  69. // regler[2].addChangeListener(ChangeListern lstn);
  70. //
  71. // }
  72.  
  73. //private void bauenSliderListener() {
  74. // regler[2].addChangeListener(new ChangeListener() {
  75. // public void stateChanged(ChangeEvent e) implements ChangeListener {
  76. // int sleepSense = regler[2].getValue();
  77. // }
  78. // }
  79. //}
  80.  
  81. // private void bauenJSliderRGB(ChangeEvent e) {
  82. // regler[2] = e.getSource();
  83. // if (!source.getValueIsAdjusting()) {
  84. // int fps = (int)source.getValue();
  85. // if (fps == 0) {
  86. // if (!frozen) stopAnimation();
  87. // } else {
  88. // delay = 1000 / fps;
  89. // timer.setDelay(delay);
  90. // timer.setInitialDelay(delay * 10);
  91. // if (frozen) startAnimation();
  92. //
  93. // }
  94.  
  95. private void bauenReglerMenuLeiste() {
  96. reglerMenuLeiste.add(reglerMenu);
  97.  
  98. }
  99.  
  100. private void bauenReglerMenu() {
  101. System.out.println("Messungen: Zeile 41");
  102. reglerArray = new JMenuItem[regler.length];
  103. for (int i = 0; i < regler.length; i++) {
  104. reglerArray[i] = new JMenuItem("Regler #" + i);
  105. }
  106.  
  107. for (int i = 0; i < regler.length; i++) {
  108. reglerMenu.add(reglerArray[i]);
  109. }
  110.  
  111. for (int i = 0; i < regler.length; i++) {
  112. reglerArray[i].addActionListener(this);
  113. }
  114.  
  115. reglerMenu.add(mSchlingel);
  116. mSchlingel.addActionListener(this);
  117.  
  118. }
  119.  
  120. private void bauenGesamt() {
  121. // this.add(anzeige.BorderLayout.CENTER);
  122. this.add(anzeige, BorderLayout.CENTER);
  123. this.add(navigation, BorderLayout.SOUTH);
  124.  
  125. }
  126.  
  127. private void bauenAnzeige() {
  128. stapelVerwaltung = new CardLayout();
  129. anzeige.setLayout(stapelVerwaltung);
  130.  
  131. regler[0] = new JSlider(0, 30);
  132. regler[0].setPaintLabels(true);
  133. regler[0].setPaintTicks(true);
  134. regler[0].setMinorTickSpacing(2);
  135. regler[0].setMajorTickSpacing(10);
  136.  
  137. regler[1] = new JSlider(-50, 50, 25);
  138. regler[1].setPaintLabels(true);
  139. regler[1].setPaintTicks(true);
  140. regler[1].setMinorTickSpacing(5);
  141. regler[1].setMajorTickSpacing(25);
  142.  
  143. regler[2] = new JSlider(JSlider.VERTICAL, 0, 255, 5);
  144. regler[2].setPaintLabels(true);
  145. regler[2].setPaintTicks(true);
  146. regler[2].setMinorTickSpacing(5);
  147. regler[2].setMajorTickSpacing(25);
  148.  
  149. regler[3] = new JSlider(0, 100, 20);
  150. regler[3].setPaintLabels(false);
  151. regler[3].setPaintTicks(false);
  152.  
  153. regler[4] = new JSlider(JSlider.VERTICAL, 0, 5, 5);
  154. regler[4].setPaintLabels(false);
  155. regler[4].setPaintTicks(false);
  156.  
  157. String kartenNummer;
  158. for (int i = 0; i < regler.length; i++) {
  159. kartenNummer = ("Karte " + i);
  160. anzeige.add(regler[i], kartenNummer);// Hinweis: es gibt verschiede add-Methoden!!!
  161. }
  162.  
  163. }
  164.  
  165. private void bauenNavigation() {
  166. // Button hier erzeugen: new
  167. vor = new JButton(">");
  168. zurueck = new JButton("<");
  169. anfang = new JButton("<<");
  170. ende = new JButton(">>");
  171. navigation.add(anfang);
  172. navigation.add(zurueck);
  173. navigation.add(reglerMenuLeiste);
  174. navigation.add(vor);
  175. navigation.add(ende);
  176. // Actionlistener muss hier noch zugefügt werden
  177. vor.addActionListener(this); // Das Objekt selber ist zuständig
  178. zurueck.addActionListener(this);
  179. anfang.addActionListener(this);
  180. ende.addActionListener(this);
  181.  
  182. }
  183.  
  184. // public void stateChanged(ChangeEvent e) {
  185. // if(e.getSource() == regler[2]) {
  186. // if(!regler[2].getValueIsAdjusting()) {
  187. // int fps = (int)regler[2].getValue();
  188. // anzeige.setBackground(new Color(0,fps,0));
  189. // System.out.println("fps= "+fps);
  190. // }
  191. // }
  192. // }
  193.  
  194. @Override
  195. public void actionPerformed(ActionEvent ae) {
  196. if (ae.getSource() == anfang) { // wenn ich auf den Button klicke ist das action event "ae" ausgelöst wurden
  197. // durch den anfangs button
  198. stapelVerwaltung.first(anzeige); // durch first wird wieder die Erste Karte angezeigt
  199.  
  200. }
  201. if (ae.getSource() == ende) {
  202. stapelVerwaltung.last(anzeige);
  203.  
  204. }
  205. if (ae.getSource() == vor) {
  206. stapelVerwaltung.next(anzeige);
  207. }
  208. if (ae.getSource() == zurueck) {
  209. stapelVerwaltung.previous(anzeige); // Anzeige ist "Container" wo die alle drin sind
  210. }
  211. if (ae.getSource() == mSchlingel) {
  212. stapelVerwaltung.show(anzeige, "Karte 4"); // Anzeige ist "Container" wo die alle drin sind
  213. }
  214.  
  215. String kartenNummer;
  216. for (int i = 0; i < regler.length; i++) {
  217. kartenNummer = "Karte " + i;
  218. if (ae.getSource() == reglerArray[i]) {
  219. stapelVerwaltung.show(anzeige, kartenNummer); // Anzeige ist "Container" wo die alle drin sind
  220. }
  221. }
  222.  
  223. }
  224.  
  225. }
  226.  
  227. /*
  228. * TEIL1 (mit JAVA DOC8): Aufgabe an die Stelle X (zw. vor zurück) soll eine
  229. * Componente gestellt werdenm dieAuswahl eines bestimmten Sliders ermöglicht
  230. * und diese solldirket angezeigt werden es gibt weitere "add" Methode die man
  231. * aufrufen muss um direkt an eine bestimmte Stelle im Stapel zu springen
  232. *
  233. * Ermöglichen an eine BESTIMMTE Stelle im Stapel zu springen
  234. *
  235. *
  236. *
  237. */
  238.  
  239. /*
  240. * Aufgabe 2: Regler[2] soll bei 0 anfangen und bei 255 aufhören regler[2] = new
  241. * JSlider(JSlider.VERTICAL, 0, 255, 5);
  242. *
  243. * HINTERGRUNDFARBE DES REGLERS ÄNDERT SICH, WENN MAN DEN REGLER BEWEGT
  244. *
  245. * optional: Bereich mit 3 Reglern 0-255 RGB und damit RGB Farben erzeugen
  246. */
RAW Paste Data