マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

いろいろやっています

JavaでMIDI関係も弄ってます。Java8からラムダ式導入の流れでActionListenerとかわりと楽に書けるようになったけどSwingのRendererあたりはそれ以上に簡略化の恩恵を受けているので非常に楽になった。ただMouseListenerはなんとかならんのか…

f:id:d-kami:20200424110638p:plain

package net.d_kami.midi;

import javax.sound.midi.MidiDevice;
import javax.sound.midi.MidiSystem;

import java.awt.Color;

import javax.swing.JLabel;
import javax.swing.JList;

public class MidiDeviceList extends JList<MidiDevice.Info>{
    public MidiDeviceList(){
        super(MidiSystem.getMidiDeviceInfo());
        
        setCellRenderer((source, value, index, isSelected, cellFocus) -> {
            var info = value;
            var label = new JLabel(info.getName());
            
            if(isSelected){
                label.setOpaque(true);
                label.setBackground(new Color(200, 200, 255));
            }
            
            return label;
        });
    }
}