/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package roundrobin;
import java.util.Timer;
import java.util.TimerTask;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Aldo
*/
public class ventana extends javax.swing.JFrame {
public boolean frozen;
int pr=0,e,te,tl,q,c1=0,c2,aux=21,qf,np;
String pr1,e1,te1,tl1="0",q1,co1="0";
String[] pro = new String[20];
String[] es = new String[20];
String[] tej = new String[20];
String[] qu = new String[20];
int t[] =new int[20];
int t2[] =new int[20];
int t3[] =new int[20];
boolean continua=true;
DefaultTableModel modelo;
/**
* Creates new form ventana
*/
public ventana() {
initComponents();
}
public void tiempo(){
java.util.Timer timer = new java.util.Timer(); //instancias el timer
final int delay = 1000;//retraso
//inicializacion
timer.schedule(new TimerTask() {
@Override
public void run() {
if(c1<=qf){
c1++;
co1=Integer.toString(c1);
jLabel3.setText(co1);
}
else{
reset();
}
}
}, 0, delay);
}
public void reset(){
frozen = true;
c1 = 1;
jLabel3.setText("1");
}
public void stop(){
frozen = true;
}
public void acomodar(){
for(int cont3=1;cont3<=5;cont3++)
{
q=q+t2[cont3];
if(t2[cont3]>0)
{
np=np+1;
}
}
qf=(q/np);
while(continua==true)
{
tiempo();
for(int i =1;i<=5;i++){
pro[i]=Integer.toString(t[i]);
tej[i]=Integer.toString(t2[i]);
qu[i]=Integer.toString(qf);
modelo = (DefaultTableModel) jTable1.getModel();
String[] datos = {pro[i],es[i],tej[i],qu[i]}; // Cantidad de columnas de la tabla
modelo.addRow(datos);
jTable1.repaint();
System.out.println("proseso: "+t[i]+" Estado: "+es[i]+" Tiempo en ejecucion: "+t2[i]+ " Quantum: "+qf);
}
if(t2[1]>21)
{
t2[1]=t2[1]-21;
for(int cont1=1;cont1<=5;cont1++)
{
t[cont1]=cont1;
aux=t2[cont1];
t2[cont1]=t2[cont1+1];
t2[cont1+1]=aux;
if(t2[cont1]<1)
{
es[cont1]="F";
}
else
{
es[1]="A";
es[2]="E";
es[3]="E";
es[4]="E";
es[5]="E";
}
if(t2[1]==0&&t2[2]==0&&t2[3]==0&&t2[4]==0&&t2[5]==0)
{
continua=false;
}
}
System.out.println("");
}
else
{
t2[1]=t2[1]-t2[1];
for(int cont1=1;cont1<=5;cont1++)
{
aux=t2[cont1];
t2[cont1]=t2[cont1+1];
t2[cont1+1]=aux;
if(t2[cont1]<1)
{
es[cont1]="F";
}
else
{
es[1]="A";
es[2]="E";
es[3]="E";
es[4]="E";
es[5]="E";
}
if(t2[1]==0&&t2[2]==0&&t2[3]==0&&t2[4]==0&&t2[5]==0)
{
continua=false;
}
}
}
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jLabel3 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBackground(new java.awt.Color(0, 0, 0));
jButton1.setBackground(new java.awt.Color(102, 0, 0));
jButton1.setForeground(new java.awt.Color(255, 255, 255));
jButton1.setText("Ingresar poceso");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setBackground(new java.awt.Color(51, 0, 153));
jButton2.setForeground(new java.awt.Color(255, 255, 255));
jButton2.setText("Iniciar Round Robin");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jLabel2.setForeground(new java.awt.Color(255, 255, 255));
jLabel2.setText("T_exec");
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Proceso", "Estado", "Tie_exec", "Q"
}
));
jScrollPane1.setViewportView(jTable1);
jLabel3.setForeground(new java.awt.Color(255, 255, 255));
jLabel3.setText("0");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 51, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addContainerGap())
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(45, 45, 45)
.addComponent(jLabel3)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(17, 17, 17)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jButton1)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 224, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel3)
.addContainerGap(21, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
//tiempo();
acomodar();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
pr++;
te1=jTextField2.getText();
te=Integer.parseInt(te1);
t[pr]=pr;
t2[pr]=te;
System.out.println(te+" "+pr);
jTextField2.setText("");
jTextField2.requestFocus();
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(ventana.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(ventana.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(ventana.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(ventana.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ventana().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField jTextField2;
// End of variables declaration
}