import java.awt.Dimension; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; /** * panneau de 300x200 pixels ou on dessine une ligne diagonale * * @author jonathan */ public class LinePanel extends JPanel { public static void main(String[] args) { JFrame frame = new JFrame(); // creation de la fenetre JPanel panel = new LinePanel(); // creation du panneau frame.setContentPane(panel); // integration du panneau dans la fenetre frame.pack(); // ajustement de la taille de la fenetre au contenu frame.setLocationRelativeTo(null); // centrage frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // quand on clique sur la croix, ca quitte le programme (ce n'est pas le cas par defaut) frame.setVisible(true); // rend la fenetre visible (ce n'est pas le cas par defaut) } /** * constructeur du panneau */ public LinePanel() { setPreferredSize(new Dimension(300, 200)); // ajustement de la taille "preferee" du panneau } @Override protected void paintComponent(Graphics graphics) { int width = getWidth(); int height = getHeight(); graphics.drawLine(width / 8, height / 8, 7 * width / 8, 7 * height / 8); } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionimport java.awt.Dimension; import java.awt.Graphics; import java.awt.Point; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import javax.swing.JFrame; import javax.swing.JPanel; /** * panneau de 300x200 pixels ou on dessine une ligne diagonale * * @author jonathan */ public class LinePanel extends JPanel implements MouseListener { private List points; public static void main(String[] args) { JFrame frame = new JFrame(); // creation de la fenetre JPanel panel = new LinePanel(); // creation du panneau frame.setContentPane(panel); // integration du panneau dans la fenetre frame.pack(); // ajustement de la taille de la fenetre au contenu frame.setLocationRelativeTo(null); // centrage frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // quand on clique sur la croix, ca quitte le programme (ce n'est pas le cas par defaut) frame.setVisible(true); // rend la fenetre visible (ce n'est pas le cas par defaut) } /** * constructeur du panneau */ public LinePanel() { points = new LinkedList(); setPreferredSize(new Dimension(300, 200)); // ajustement de la taille "preferee" du panneau addMouseListener(this); } @Override protected void paintComponent(Graphics graphics) { Iterator pointIterator = points.iterator(); Point start, end; while (pointIterator.hasNext()) { start = pointIterator.next(); if (pointIterator.hasNext()) { end = pointIterator.next(); graphics.drawLine(start.x, start.y, end.x, end.y); } } } @Override public void mouseClicked(MouseEvent mouseEvent) {} @Override public void mouseEntered(MouseEvent mouseEvent) {} @Override public void mouseExited(MouseEvent mouseEvent) {} @Override public void mousePressed(MouseEvent mouseEvent) {} @Override public void mouseReleased(MouseEvent mouseEvent) { points.add(mouseEvent.getPoint()); if (points.size() % 2 == 0) { repaint(); // on ne redessine que quand on a un nombre pair de points } } }