Salut,
Je début avec le dessin en java,
j'ai voulu crée une interface graphique qui affiche des lignes dans une fenêtre
J'ai crée 2 classes:
- Formes qui hérite de JPanel dans la quel j'ai redéfini la méthode paintComponent pour afficher les lignes
- MainFrame qui hérite de la classe JFrame et qui va contenir le jpanel Formes et l'afficher, et c'est cette classe qui contient la méthode main
Le problème c'est qu'on exécutant mon programme les lignes s'affiche une seul fois puis ils disparaissent (même chose si je redimensionne la fenêtre).
j'ai essayé d'utiliser la méthode repaint() mais sans résultat, de ce fait j'ai voulu avoir une idée sur comment résoudre ce problème et merci d'avance
Voici le code source:
Classe Formes:
Classe MainFrame:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.awt.*; import javax.swing.*; public class Formes extends JPanel { public void paintComponent(Graphics g) { super.paintComponent(g); g=this.getGraphics(); Graphics2D g2 = (Graphics2D) g; Color c = g.getColor(); g2.setColor(Color.RED); int x=0; int y=0; int i=50; while(i>0){ g2.drawLine(x, y, 20, 20); x+=3; y+=5; i--; } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 mport javax.swing.WindowConstants; import javax.swing.SwingUtilities; public class MainFrame extends javax.swing.JFrame { /** * Auto-generated main method to display this JFrame */ private Formes forme; public MainFrame() { super(); initGUI(); } private void initGUI() { try { setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); pack(); setSize(400, 300); forme=new Formes(); this.add(forme); forme.repaint(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { MainFrame frame=new MainFrame(); frame.setVisible(true); } }
Partager