예제 #1
0
  // atualiza os dados gerias do automato
  protected void refresh() {
    // modelo de combobox para os estados existentes
    DefaultComboBoxModel<Estado> modelcb = new DefaultComboBoxModel<>();
    // modelo para a tabela de estados
    Object[][] o = new Object[a.getEstados().size()][2];
    int i = 0; // variavel para indicar a posi__o da linha na matriz
    for (Estado e : a.getEstados()) {
      modelcb.addElement(e);
      // se for incinicial aparece ->, se for final aparece (F), se for ambos, (F)->
      o[i][0] = (e.isFinal() ? "(f)" : "") + "" + (e.equals(a.getInicial()) ? "->" : "");
      o[i][1] = e.getNome();
      i++;
    }
    cbEstadosDestinos.setModel(modelcb);
    tblEstados.setModel(new DefaultTableModel(o, new String[] {"", ""}));

    // modelo para combox de simbolos do alfabeto
    DefaultComboBoxModel modelsim = new DefaultComboBoxModel();
    modelsim.addElement('E');
    for (char c : a.getAlfabeto()) {
      modelsim.addElement(c);
    }
    cbAlfabeto.setModel(modelsim);

    // atualiza o modelo texto do automato
    textArea.setText(a.toString());
    // atualiza o modelo gr_fico do automato
    painelView.repaint();
  }
예제 #2
0
 protected void refreshEstados() {
   // adiciona os estados na visualiza__o
   painelView.removeAll();
   for (Estado e : a.getEstados()) {
     // um objeto painelestado _ criado, ele _ um circulo  que representa um estado, ao final,
     // todos eles s_o colocados em um painelVisualiza__o
     JPanelEstado p = new JPanelEstado(e, this); // cria a visualiza__o gr_fica
     // colocam o visualizador no painel
     painelView.add(p);
     painelView.repaint();
   }
 }
예제 #3
0
 // chamado no evento do bot_o novo
 private void novoEstado() {
   Estado novo = new Estado(isfinal.isSelected(), ("q" + a.getEstados().size()));
   a.getEstados().add(novo);
   if (criarInicial) { // seta como inicial se for inicial
     a.setInicial(novo.getNome());
     criarInicial = false; // n_o deixa mais criar estados iniciais
   }
   JPanelEstado p = new JPanelEstado(novo, this); // cria a visualiza__o gr_fica
   // colocam o visualizador no painel
   painelView.add(p);
   painelView.repaint();
   refresh();
 }
예제 #4
0
 // atualiza os dados das transi__es do estado selecionado
 protected void refreshTrans() {
   if (atual == null) {
     return; // n_o executa se o estado atual for nulo
   }
   Object[][] o = new Object[atual.transicoes.size()][2];
   int i = 0;
   for (char c : atual.getTransicoes().keySet()) {
     o[i][0] = c;
     o[i][1] = atual.getTransicoes().get(c);
     i++;
   }
   tblTrans.setModel(new DefaultTableModel(o, new String[] {"Simbolo", "Estado(s) Destino(s)"}));
   // atualiza o modelo texto do automato
   textArea.setText(a.toString());
   // atualiza o modelo gr_fico do automato
   painelView.repaint();
 }