// 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(); }
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(); } }
// 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(); }
// 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(); }