Bonjours , mon programme trace le signal nrz selon le TextField, le problème c'est j'arrive pas a faire apparaître les lignes avec drawline , voila mon code:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.JApplet;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class NewClass extends JApplet implements ActionListener
{
private Image offScreen = null;
private boolean triggerDrawFired = true;
private JTextField nameField;
public void init()
{
pan = new Paneau() ;
barreMenus = new JMenuBar() ;
setJMenuBar(barreMenus) ;
formes = new JMenu ("Signal") ;
formes.setMnemonic('F') ;
barreMenus.add(formes) ;
nrz= new JCheckBoxMenuItem ("nrz") ;
formes.add(nrz) ;
nrz.addActionListener (this) ;
JPanel p1 = new JPanel();
p1.add(new JLabel("Entrez le code"));
p1.add(nameField = new JTextField("",35));
setLayout(new BorderLayout());
add(p1, BorderLayout.NORTH);
}
public void paint(Graphics g)
{
g.drawString(nameField.getText(),20,100);
g.setColor(Color.green);
g.drawRect(1,200,900,500);
g.setColor(Color.red);
g.setColor(Color.black);
setVisible(true);
if (pan.nrz) {
String poly;
poly = nameField.getText();
System.out.println("avant l'affichage");
for(int i=1;i<=poly.length();i++){
if(poly.charAt(i)=='0'){ // si c un zero alor trace en bas
g.drawLine (i, 600, i+40, 600) ;}
else if (poly.charAt(i)=='1'){ // si c 1 alors tracer en haut
g.drawLine (i, 600, i+40, 600) ;}
pan.repaint();
}
}
}
public void actionPerformed(ActionEvent e)
{
Object source = e.getSource() ;
String poly;
if (source == nrz)
pan.nrzz(nrz.isSelected()) ;
pan.repaint();
}
private JMenuBar barreMenus ;
private JMenu couleur, dimensions, formes ;
private Paneau pan ;
private JCheckBoxMenuItem nrz;
class Paneau extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g) ;
}
public void nrzz (boolean trace) {nrz = trace ;
System.out.println("appel");
repaint();
}
private boolean nrz = false ;
}
}
Afficher la suite