Duvida: projeto de C pra Java

11 respostas
L

oi pessoal…
eu sei programar em C, mas peguei pra terminar um projeto em Java…
o cara que estava fazendo antes de mim fez de um jeito bem próximo a C, os argumentos são passados pela linha de comando, no main tem um switch e ai cada ferramenta recebe os argumentos do args.
a questão é, tenho que colocar uma GUI, e não usar a linha de comando… aí eu pensei em pegar os eventos da GUI, adaptar e mandar pra um vetor no main e usar como se fosse o args mesmo… será que rola? é possível? eu não sei muito sobre orientação a objetos…
espero que dê pra entender a duvida,
obrigado =)

11 Respostas

rdgms

Ae colega não entendi muito bem … voce poderia explicar melhor?

flw ^^

GouverMXT

Acho que uma solução mais rápida seria você retirar este switch do main, criar uma classe controladora com um método para chamar cada uma destas ferramentas e chamar o método correspondente na respectiva ação de evento da sua GUI.

Agora se você tiver mais tempo e estiver a fim de aprender mais sobre orientação a objetos seria mais interessante dar uma estudada no assunto e refatorar toda a sua aplicação, pois fica muito estranho programação estilo estruturada utilizando Java.

L

entendi o que você quis dizer GouverMXT… mas infelizmente não tenho muito tempo pra aprender e conseguir implementar isso… faz poucas semanas que ouvi o termo GUI pela primeira vez, estou estudando pra conseguir passar um evento pra um vetor, imagine quanto tempo eu demoraria pra conseguir passar cada evento pra um método diferente…

embora fique “feio” acho que vou fazer com o vetor mesmo, porque não precisa mexer muito no código que já está pronto e funcionando… =/

GouverMXT

luisera:
entendi o que você quis dizer GouverMXT… mas infelizmente não tenho muito tempo pra aprender e conseguir implementar isso… faz poucas semanas que ouvi o termo GUI pela primeira vez, estou estudando pra conseguir passar um evento pra um vetor, imagine quanto tempo eu demoraria pra conseguir passar cada evento pra um método diferente…

embora fique “feio” acho que vou fazer com o vetor mesmo, porque não precisa mexer muito no código que já está pronto e funcionando… =/

Neste caso apenas retire o switch do main e coloque em outro método que também recebe um array de String como parâmetro, pois a sua aplicação só pode possuir um método main e ele estará no frame principal da sua GUI, então a aplicação vai iniciar pela GUI e a partir dos eventos da mesma que você vai instanciar esta classe de controle e chamar o novo método passando a String correspondente.

L

hmmm… acho que entendi…
estava penando tentando descobrir como passar os dados referentes aos eventos pra main anterior, mas não dá né… a main tem que ser uma subclasse da GUI…

L

tem como ver se está certo? (um exemplo)
é que deu um monte de erro aqui, queria pelo menos saber se tem a ver com isso ou nao...

public class fmtGUI extends javax.swing.JFrame {

..
private static String argumentos[];

........

    private void jTextFieldEntrada4ActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        // TODO add your handling code here:
        argumentos[0] = jTextFieldEntrada4.getText();
    }      

.....

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new fmtGUI().setVisible(true);
            }
        });
        JOptionPane.showMessageDialog(null,argumentos[0]);
    }

....
}
GouverMXT
luisera:
tem como ver se está certo? (um exemplo) é que deu um monte de erro aqui, queria pelo menos saber se tem a ver com isso ou nao...
public class fmtGUI extends javax.swing.JFrame {

..
private static String argumentos[];

........

    private void jTextFieldEntrada4ActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        // TODO add your handling code here:
        argumentos[0] = jTextFieldEntrada4.getText();
    }      

.....

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new fmtGUI().setVisible(true);
            }
        });
        JOptionPane.showMessageDialog(null,argumentos[0]);
    }

....
}

Se você puder, poste aqui ou explique melhor como está o código do seu switch que está no main.

L

Na realidade, é só um método main por classe. Ou seja, é possível haver vários métodos “main”, estáticos, públicos e com array de String com parâmetro de entrada numa mesma aplicação.

GouverMXT

Na realidade, é só um método main por classe. Ou seja, é possível haver vários métodos “main”, estáticos, públicos e com array de String com parâmetro de entrada numa mesma aplicação.

Sim, tá certo. Eu estava querendo dizer no sentido de um método que starta a aplicação.

L

nesse código que eu mandei eu criei esse main novo e uma nova classe Switch que recebe o vetor de strings e chama Switch… eu só queria saber se o jeito de declarar e mexer nesses dados e eventos tá certo, de modo que a ideia seria depois chamar um método da classe Switch passando o vetor “argumentos”… o argumentos[0] foi só um exemplo…

eu imaginei que não tivesse problema ter mais de um ‘main’, mas só pra não ficar confuso, renomeei o “outro” main como Switch… =)

L

desculpa a insistencia pessoal, mas tem alguma coisa errada que não consigo entender…

private void jCheckBoxUsarFiltroItemStateChanged(java.awt.event.ItemEvent evt) { // TODO add your handling code here: System.out.println("oi luisera"); argumentos[0] = "alguma coisa"; System.out.println(argumentos[0]); }
na saída aparece o oi, mas nao ‘alguma coisa’… eu devo estar declarando alguma coisa errada… como seria o certo?

Criado 19 de fevereiro de 2009
Ultima resposta 20 de fev. de 2009
Respostas 11
Participantes 4