JLayeredPane を使用して Kinect 駆動の UI を作成しようとしています。UI は 4 つの JPanel で構成されています。これら 4 つの JPanel の上に、カーソルをペイントしてユーザーのカーソルを表示したいと思います。JLayeredPane を使用すると、カーソルを動かすことができません。この 4 つの JPanel の上にカーソルを描画する必要があるため、カーソルを描画する JPanel を上位レイヤーに配置します。私のコードは次のようになります。
mainFrame = new JFrame();
mainFrame.setSize(WIDTH, HEIGHT);
mainFrame.setTitle("Kinect module");
mainFrame.setMinimumSize(new Dimension(1200, 800));
mainFrame.setVisible(true);
controlPanel = new JPanel();
controlPanel.setPreferredSize(new Dimension(1180, 110));
Color controlPanelBcg = new Color(255, 64, 16);
controlPanel.setBackground(controlPanelBcg);
propertiesPanel = new JPanel();
propertiesPanel.setPreferredSize(new Dimension(210, 540));
Color propertiesPanelBcg = new Color(16, 255, 64);
propertiesPanel.setBackground(propertiesPanelBcg);
statusPanel = new JPanel();
statusPanel.setPreferredSize(new Dimension(1180, 110));
Color statusPanelBcg = new Color(64, 16, 255);
statusPanel.setBackground(statusPanelBcg);
statusPanel.setPreferredSize(new Dimension(1180, 110));
displayPanel = displayManager.getJPanel(DisplayType.DEFAULT);
displayPanel.setPreferredSize(new Dimension(960, 540));
cursorPanel = new CursorPanel(context, sessMan);
cursorPanel.setVisible(true);
cursorPanel.setSize(1200, 800);
cursorPanel.setOpaque(false);
layeredPane = new JLayeredPane();
layeredPane.setPreferredSize(new Dimension(1200, 820));
layeredPane.setLayout(new FlowLayout(FlowLayout.LEADING, 5, 5));
layeredPane.add(controlPanel, JLayeredPane.DEFAULT_LAYER);
layeredPane.add(displayPanel, JLayeredPane.DEFAULT_LAYER);
layeredPane.add(propertiesPanel, JLayeredPane.DEFAULT_LAYER);
layeredPane.add(statusPanel, JLayeredPane.DEFAULT_LAYER);
layeredPane.add(cursorPanel, JLayeredPane.MODAL_LAYER);
mainFrame.getContentPane().add(layeredPane);
mainFrame.pack();
思い通りのレイアウトが出来上がりました。しかし、cursorPanel のメソッド paintComponent(Graphics g) でカーソルをペイントしたい場合、何も起こりません。私は何を間違っていますか?