Improved equaliser display
This commit is contained in:
@@ -15,6 +15,12 @@ public class Equaliser extends JPanel {
|
||||
|
||||
EqualiserChannel channels[];
|
||||
|
||||
static final double[] frequencies = {
|
||||
20d, 25d, 31.5d, 40d, 50d, 63d, 80d, 100d, 125d, 160d, 200d,
|
||||
250d, 315d, 400d, 500d, 630d, 800d, 1000d, 1250d, 1600d, 2000d,
|
||||
2500d, 3150d, 4000d, 5000d, 6300d, 8000d, 10000d, 12500d, 16000d,
|
||||
20000d
|
||||
};
|
||||
|
||||
public Equaliser() {
|
||||
super();
|
||||
@@ -28,7 +34,7 @@ public class Equaliser extends JPanel {
|
||||
inner.setLayout(new FlowLayout());
|
||||
|
||||
for (int i = 0; i < 31; i++) {
|
||||
channels[i] = new EqualiserChannel();
|
||||
channels[i] = new EqualiserChannel(frequencies[i]);
|
||||
inner.add(channels[i]);
|
||||
}
|
||||
|
||||
|
||||
@@ -15,17 +15,35 @@ public class EqualiserChannel extends JPanel {
|
||||
float value;
|
||||
JSlider slider;
|
||||
JTextField textbox;
|
||||
JLabel frequency;
|
||||
|
||||
public EqualiserChannel() {
|
||||
public EqualiserChannel(double freq) {
|
||||
super();
|
||||
|
||||
|
||||
value = 0;
|
||||
|
||||
slider = new JSlider(-120, 120, 0);
|
||||
textbox = new JTextField();
|
||||
|
||||
String suffix = "Hz";
|
||||
if (freq > 1000) {
|
||||
freq /= 1000;
|
||||
suffix = "kHz";
|
||||
}
|
||||
|
||||
String ftxt = String.format("%.4f", freq);
|
||||
while (ftxt.endsWith("0")) {
|
||||
ftxt = ftxt.substring(0, ftxt.length() - 1);
|
||||
}
|
||||
if (ftxt.endsWith(".")) {
|
||||
ftxt = ftxt.substring(0, ftxt.length() - 1);
|
||||
}
|
||||
frequency = new JLabel(ftxt + suffix);
|
||||
|
||||
setLayout(new BorderLayout());
|
||||
|
||||
add(frequency, BorderLayout.NORTH);
|
||||
slider.setOrientation(SwingConstants.VERTICAL);
|
||||
add(slider, BorderLayout.CENTER);
|
||||
textbox = new JTextField("0.0");
|
||||
|
||||
Reference in New Issue
Block a user