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