1
public class ShapeDisplayer implements ActionListener {
    private static final int Width = 50; 
    private static final int Frame_Width = 400;
    private static final int Frame_Height = 600; 
    static JPanel DrawPanel;
    static JButton carButton;
    static JButton eclipseButton;
    static JButton compButton;

    public static void main (String args[])
    {
        // create frame
        JFrame frame = new JFrame("Drawing Applet"); 

        // create panels
        JPanel ButtonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
        DrawPanel = new JPanel(new BorderLayout());

        // create Icons
        CarIcon Acar = new CarIcon(Width);
        EclipseIcon doubleCircle = new EclipseIcon(20);
        CompositeIcon compIcon = new CompositeIcon(50, 60);

        // create buttons
        carButton = new JButton(Acar);
        eclipseButton = new JButton(doubleCircle);
        compButton = new JButton(compIcon);

        // panel config
        ButtonPanel.setBounds(0,0,Frame_Width,100);
        DrawPanel.setBounds(0,100,Frame_Width,Frame_Height-100);

        // add panels'components
        ButtonPanel.add(eclipseButton);
        ButtonPanel.add(carButton);
        ButtonPanel.add(compButton);

        // add frames' components
        frame.add(ButtonPanel);
        frame.add(DrawPanel);

        // frame config
        frame.setSize(Frame_Width, Frame_Height);
        frame.setLayout(new BorderLayout());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

    }
    @Override
    public void actionPerformed(ActionEvent e) {

        if (e.getSource() == carButton)
        {
            DrawPanel.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) { 
                  CarIcon car = new CarIcon(Width, e.getX(), e.getY());
                  JLabel lable = new JLabel (car);
                  DrawPanel.add(lable);
              } 
            });     
        }

    }
}

このプログラムを実装して、マウスクリックでパネルに描画しようとしています。たとえば、ボタンが carButton の場合、パネルをクリックするたびに車のアイコンが描画されます。リスナーを実装しましたが、パネルをクリックしてもパネルに何も表示されません。リスナーを Jframe に追加していますが、プログラムが正しく動作するために Jpanel に追加する必要がありますか? 誰かがこのプログラムを修正するのを手伝ってくれますか、事前に感謝します。

ここに画像の説明を入力

4

1 に答える 1