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);
}
});
}
}
}
Im essayant d'en œuvre ce programme pour tirer sur le panneau mouseclick, par exemple, si le bouton est carButton, puis chaque fois que je clique sur le panneau, une icône de voiture sera dessiné. J'ai implémenté l'écouteur, mais quand je clique sur le panneau, rien n'apparaît sur le panneau. J'ajoute l'écouteur sur le Jframe, dois-je l'ajouter sur le Jpanel pour que le programme fonctionne correctement? Quelqu'un peut-il aider à réparer ce programme, merci d'avance.Mettre en œuvre de l'auditeur ne fonctionne pas
Vous ajoutez jamais l'auditeur à quoi que ce soit –
en fait je ne sais pas comment faire, ai-je besoin d'utiliser la classe anonyme? – KhoaVo