Effacement des lignes

manoa21 -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde! j'ai un problème concernant les graphics!
J'ai une fenêtre et sur cette fenêtre j'ai tracé des quadrillages avec des lignes à l'aide du boucle "for". Le problème c'est que quand ces lignes sont en dessous d'une boite de dialogue ou en dessous du menu déroulant ces lignes sont effacées.
Je vous remercie d'avance de votre collaboration!


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Fenetre extends JFrame{
	private static final long serialVersionUID = 1L;
	private JMenuBar barreMenus;
	private JMenu Poles;
	private JMenuItem AjoutPole, SupprPole, ModifPole;
	@SuppressWarnings("deprecation")
	public Fenetre(){
		this.setTitle("Carte des Pôles et des Zéros");
		this.setSize(500,500);
		this.setResizable(false);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);
		Container cont=  getContentPane();
		cont.setLayout(null);

		barreMenus = new JMenuBar();
		setJMenuBar(barreMenus);
			
		Poles = new JMenu("Pôles");
		barreMenus.add(Poles);
		AjoutPole = new JMenuItem("Ajout d'un Pôle");
		AjoutPole.setToolTipText("Pour ajouter un pôle dans le plan complexe");
		Poles.add(AjoutPole);
		Poles.addSeparator();
		SupprPole = new JMenuItem("Suppression d'un Pôle");
		SupprPole.setToolTipText("Pour supprimer un pôle dans le plan complexe");
		Poles.add(SupprPole);
		Poles.addSeparator();
		ModifPole = new JMenuItem("Modifier un Pôle");
		ModifPole.setToolTipText("Pour modifier un pôle dans le plan complexe");
		Poles.add(ModifPole);
		Poles.addSeparator();
		AjoutPole.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0){
				DAjoutPole zd = new DAjoutPole(null, "Ajout d'un pôle", true);
			}
		});
		SupprPole.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0){
				DAjoutPole zd = new DAjoutPole(null, "Ajout d'un pôle", true);
			}
		});
		ModifPole.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0){
				DAjoutPole zd = new DAjoutPole(null, "Ajout d'un pôle", true);
			}
		});
		this.show();
		}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
			Fenetre fen = new Fenetre();
			fen.setContentPane(new Panneau());
			fen.repaint();
	}
}


import java.awt.Color;
import java.awt.Graphics;
import javax.swing.*;
public class Panneau extends JPanel{
	private static final long serialVersionUID = 1L;
	private int x;
	DAjoutPole ajp;
	public Panneau(){}
	public void paintComponent(Graphics g){
		ajp = new DAjoutPole();
		for (int i=1; i<=70; i++)
			{
				x=x+5;
				g.setColor(Color.black.brighter());
				g.drawLine(15,15+x,355,x+15);
				g.drawLine(x,20,x,370);
				
			}
		
	}
}


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DAjoutPole extends  JDialog implements ActionListener{
	private static final long serialVersionUID = 1L;
	public Panneau panneau ;
	
	public DAjoutPole() {
		panneau = new Panneau();
	}
	public DAjoutPole(JFrame parent, String title, boolean modal){ 
		this.setSize(300,160);
		this.setTitle("Ajout pôle");
		Container contenu=  getContentPane();
		contenu.setLayout(null);
        JButton BAjoutPole = new JButton("OK");
        BAjoutPole.setBounds(110,95,80,25);
		contenu.add(BAjoutPole);
		BAjoutPole.addActionListener( this);
		this.setLocationRelativeTo(null);
		this.setResizable(false);
		this.setVisible(true);
					
		}
	
	public void actionPerformed(ActionEvent e){
		this.setVisible(false);
	}

}

1 réponse

Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Il suffit de les redessiner lors de certains signaux. Ou d'inclure le dessin dans la fonction qui redessine.
0