1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
| package com.symphonic.view;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
public class Oscillator_view_02 extends JFrame {
/**
*
*/
private static final long serialVersionUID = 7111394988989518864L;
/**
* DECLARATIONS
*/
//DECLARATIONS ELEMENTS GRAPHIQUES
JPanel panelGeneral, panelSlider, panelSliderLabel, panelFrequencyField, panelFrequencyLabel;
JSlider slider;
JButton btn_start;
//CONSTANTES OSCILLATEUR
private final int OSC_FREQ_MIN = 100;
private final int OSC_FREQ_MAX = 4200;
private final int OSC_FREQ_VALUE = 440;
//CONSTRUCTEUR
public Oscillator_view_02(String title){
super();
//parapétrage de la fenêtre
buildOscWindow(title);
buildSlider(title, OSC_FREQ_MIN, OSC_FREQ_MAX, OSC_FREQ_VALUE);
panelGeneral = new JPanel(new GridBagLayout());
add(panelGeneral);
panelSlider = new JPanel();
panelSlider.add(slider);
//1ere ligne horizontale
addPanel(null, panelGeneral, Color.BLUE, 0, 0, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.RED, 1, 0, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.BLUE, 2, 0, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.RED, 3, 0, 2, 1, 1, 1);
addPanel(null, panelGeneral, Color.BLUE, 5, 0, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.RED, 6, 0, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.BLUE, 7, 0, 1, 1, 1, 1);
//2ème ligne horizontale
addPanel(null, panelGeneral, Color.GREEN, 0, 1, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.YELLOW, 1, 1, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.GREEN, 2, 1, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.YELLOW, 3, 1, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.GREEN, 4, 1, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.YELLOW, 5, 1, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.GREEN, 6, 1, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.YELLOW, 7, 1, 1, 1, 1, 1);
//3ème ligne horizontale
addPanel(null, panelGeneral, Color.RED, 0, 2, 7, 1, 1, 1);
addPanel(null, panelGeneral, Color.BLUE, 7, 2, 1, 1, 1, 1);
//4ème ligne horizontale
addPanel(panelSlider, panelGeneral, null, 0, 3, 7, 1, 1, 1);
addPanel(null, panelGeneral, Color.YELLOW, 7, 3, 1, 1, 1, 1);
//5ème ligne horizontale
addPanel(null, panelGeneral, Color.RED, 0, 4, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.BLUE, 1, 4, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.RED, 2, 4, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.BLUE, 3, 4, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.RED, 4, 4, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.BLUE, 5, 4, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.RED, 6, 4, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.BLUE, 7, 4, 1, 1, 1, 1);
//6ème ligne horizontale
addPanel(null, panelGeneral, Color.GREEN, 0, 5, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.YELLOW, 1, 5, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.GREEN, 2, 5, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.YELLOW, 3, 5, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.GREEN, 4, 5, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.YELLOW, 5, 5, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.GREEN, 6, 5, 1, 1, 1, 1);
addPanel(null, panelGeneral, Color.YELLOW, 7, 5, 1, 1, 1, 1);
}
private static void addPanel(JPanel panelChild, JPanel panelParent, Color color,
int x, int y, int width, int height, int weightx, int weighty) {
GridBagConstraints gbc = new GridBagConstraints(x, y, width, height, weightx, weighty, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,0,0), 0, 0);
JPanel panelColor;
if(panelChild == null) {
panelColor = new JPanel();
} else {
panelColor = panelChild;
}
if(color != null) panelColor.setBackground(color);
panelParent.add( panelColor, gbc );
}
private void buildSlider(String title, int freq_min, int freq_max, int freq_value) {
slider = new JSlider();
slider.setName(title);
slider.setMinimum(freq_min);
slider.setPaintLabels(true);
slider.setPaintTicks(true);
slider.setMajorTickSpacing(500);
slider.setMinorTickSpacing(100);
slider.setMaximum(freq_max);
slider.setValue(freq_value);
}
private void buildOscWindow(String title) {
setTitle(title);
setSize(1000, 600);
setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
setResizable(false); //On interdit la redimensionnement de la fenêtre
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
}
} |
Partager