1

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) でカーソルをペイントしたい場合、何も起こりません。私は何を間違っていますか?

4

0 に答える 0