-
Notifications
You must be signed in to change notification settings - Fork 0
/
Principal.java
98 lines (92 loc) · 2.22 KB
/
Principal.java
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import javax.swing.JOptionPane;
public class Principal {
public static void main(String[] args) {
String proc;
int quantProc;
boolean valida;
String opcao = "";
do {
opcao = JOptionPane.showInputDialog("Selecione uma opção: \n"
+ "1 - FCFS\n"
+ "2 - SJF\n"
+ "3 - SRTF\n"
+ "4 - Round Robin\n"
+ "5 - Multinivel\n"
+ "6 - Sair");
if(opcao.equals("6")) {
//Por padrão o JOptionPane ConfirmDialog cria um botão cancelar, para eliminar este botão é necessário passar o parâmetro YES_NO_OPTION
//O retorno do Confirm Dialog é um int, 0 para sim, 1 para não e 2 para cancelar
int escolha = JOptionPane.showConfirmDialog(null,"Deseja realmente sair?" ,"Sair",JOptionPane.YES_NO_OPTION,1);
if(escolha != 0) {
opcao = "";
}
}
//Teste para validar a opção selecionada
else if(Integer.valueOf(opcao) > 0 && Integer.valueOf(opcao) < 6){
//Validação da quantidade de processos
do {
proc = (JOptionPane.showInputDialog("Digite a quantidade de processos: "));
valida = validaProc(proc);
}while(!valida);
quantProc = Integer.valueOf(proc);
switch (opcao) {
case "1": {
FCFS fcfs = new FCFS(quantProc);
fcfs.escalona();
fcfs.imprime();
opcao = "";
break;
}
case "2": {
SJF sjf = new SJF(quantProc);
sjf.escalona();
sjf.imprime();
opcao = "";
break;
}
case "3": {
SRTF srtf = new SRTF(quantProc);
srtf.escalona();
srtf.imprime();
opcao = "";
break;
}
case "4": {
RoundRobin rr = new RoundRobin(quantProc);
rr.escalona();
rr.imprime();
opcao = "";
break;
}
case "5": {
Multinivel multinivel = new Multinivel(quantProc);
multinivel.escalona();
multinivel.imprime();
opcao = "";
break;
}
case "6": {
break;
}
default: {
break;
}
}
}
//Tratativa para opções inválidas
else {
opcao = "";
}
} while (opcao == "");
}
//Tratativa para conversão do valor solicitado via JOptionPane
public static boolean validaProc(String proc) {
try {
Integer.parseInt(proc);
return true;
}catch (Exception e) {
JOptionPane.showMessageDialog(null, "Digite apenas inteiros");
return false;
}
}
}