- private static final List<Hashtable<Integer,JComponent>> labeltables = new ArrayList<Hashtable<Integer,JComponent>>() {{
- for( int i = 0; i < 5; i++ ) {
- Hashtable<Integer,JComponent> e = new Hashtable<>();
- add(e);
- e.put(-i * 12, new JLabel( "x" + Double.toString(Math.pow( 2, (double)(-i) )) ));
- e.put(0, new JLabel( "x1.0" ));
- e.put(i * 12, new JLabel( "x" + Double.toString(Math.pow( 2, (double)i )) ));
+ private static final List<Hashtable<Integer,JComponent>>
+ tickLabeltables = new ArrayList<Hashtable<Integer,JComponent>>()
+ {
+ {
+ NumberFormat formetter = NumberFormat.getInstance();
+ for( String maxFactorString : maxFactors ) {
+ Hashtable<Integer,JComponent> e = new Hashtable<>();
+ Double maxFactor = Double.parseDouble(maxFactorString.substring(1));
+ add(e);
+ int maxValue = (int) Math.round(Math.log(maxFactor) / Math.log(2) * RESOLUTION);
+ if( maxFactorString.equals("x1") ) {
+ e.put(0, new JLabel("Play speed : x1 (Original)"));
+ } else {
+ e.put(-maxValue, new JLabel("x" + formetter.format(1/maxFactor)));
+ e.put(0, new JLabel("x1"));
+ e.put(maxValue, new JLabel(maxFactorString));
+ }
+ }