Improved equaliser display

This commit is contained in:
2018-09-27 19:27:56 +01:00
parent 2ff885c6f9
commit 9e42cfa8db
3 changed files with 102 additions and 2 deletions

View File

@@ -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]);
}

View File

@@ -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");