Les agradesco a todos por su colaboracion. lei lo que me recomendaron y otras cosas adicionales y logre pintar mi grafica solo me falta saber un dato pero eso si me toca es ami. preguntarle al profesor. les anexo mi codigo por si talvez tienen alguna sugerencia para mejorar.
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class Grafica extends JPanel{
private static final long serialVersionUID = 1L;
private int tipoOrden;
private int valorOrden=4;
private static Nodo Cab = null;
public void Agregar(Nodo r){
if (Cab == null)
{
Cab = new Nodo();
r.Sig = null;
Cab = r;
}
else{
Nodo aux = Cab;
while(aux.Sig != null)
{
aux = aux.Sig;
}
r.Sig = null;
aux.Sig = r;
}
}
public void paintComponent(Graphics g){
g.setColor(Color.lightGray);
g.fillRect(0, 0, 749, 400);
g.setColor(new Color(237,237,237));
for(int x=0;x<750;x+=20){
g.drawLine(x, 0, x, 400);
}
for(int y=0;y<400;y+=20){
g.drawLine(0, y, 750, y);
}
}
public void pintar(){
this.paintComponent(getGraphics());
this.paintNodes(getGraphics());
}
public void paintNodes(Graphics g){
g.setColor(Color.BLUE);
g.setColor(Color.white);
Nodo aux = Cab;
while (aux.Sig != null){
g.fillRect((aux.Hora + aux.NumAleatoreo), (aux.Hora + aux.NumAleatoreo), 20, 20);
System.out.println(this.valorOrden);
aux = aux.Sig;
}
Cab = null;
}
}
public class Nodo {
public int NumAleatoreo;
public int Hora;
public int Tipo;
public Nodo Sig;
private JTextField txtHtrabajo = new JTextField("8");
private JTextField txtNumPedidos = new JTextField("20");
private JTextField txtHorarioInicio = new JTextField("8:00 AM");
private JTextField txtHorarioFin = new JTextField("6:00 PM");
private JTextField txtHoraMax = new JTextField();
private JTextField txtOrdinariosPorcent = new JTextField("20");
private JTextField txtPrioritariosPorcent = new JTextField("80");
private JTextField txtOrdinariosHoras = new JTextField();
private JTextField txtPrioritariosHoras = new JTextField();
private JTextField txtOrdinariosTotal = new JTextField();
private JTextField txtPrioritarioTotal = new JTextField();
private JTextField txtTotalHoras = new JTextField();
private JTextField txtTotalOper = new JTextField();
/**
* Declaracion de paneles
*/
private JPanel pnlVariables=new JPanel();
private JPanel pnlDatos = new JPanel();
private JPanel pnlResultado = new JPanel();
private Grafica panel = new Grafica();
/**
* declaracion de los controles
*/
private JButton btnCalcular;
private JButton btnCancelar;
/**
* Jlist
*/
private JList listResult;
private DefaultListModel modeloDatos;
/**
* Grafica
*/
public simulacion()
{
super("Atencion al cliente");
setSize(1000,500);
btnCancelar.setBounds(620, 380, 100, 25);
btnCancelar.addActionListener(this);
// TitledBorder tituloG = new TitledBorder("Grafica");
// panel.setBorder(tituloG);
panel.setBounds(590,10,300,350);
add(panel);
int val = 0;
for (int i = 1; i <= Integer.parseInt(txtNumPedidos.getText());i++){
val = (int) (Math.random() * 100);
Nodo p = new Nodo();
if (val < Integer.parseInt(txtOrdinariosPorcent.getText())){
modeloDatos.addElement(i + " - [ " +val +" => ORDINARIO ]" );
p.NumAleatoreo = val;
p.Tipo = 1;
p.Hora = 1;
panel.Agregar(p);
cOrdinarios++;
}
else {
modeloDatos.addElement(i + " - [ " +val +" => PRIORITARIO ]");
cPrioritarios++;
p.NumAleatoreo = val;
p.Tipo = 1;
p.Hora = 1;
panel.Agregar(p);
}
}
txtOrdinariosTotal.setText(String.valueOf(cOrdinarios));
txtOrdinariosHoras.setText(String.valueOf((cOrdinarios * 2)));
txtPrioritarioTotal.setText(String.valueOf(cPrioritarios));
txtPrioritariosHoras.setText(String.valueOf((cPrioritarios * 4)));
int totalH = Integer.parseInt(txtOrdinariosHoras.getText()) + Integer.parseInt(txtPrioritariosHoras.getText());
txtTotalHoras.setText(String.valueOf(totalH));
int NOper = totalH / Integer.parseInt(txtHtrabajo.getText());
txtTotalOper.setText(String.valueOf(NOper));
listResult.setModel(modeloDatos);
panel.pintar();
}
if (e.getSource() == btnCancelar)
{
System.exit(0);
}
}
}
Si depronto me pueden ayudar a mejorar el codigo o encuentrar algun error. estare pendiente de sus sugerencias gracias por la ayuda