Duvida em relação ao Swing e winforms do dot Net

6 respostas
emersonsoares

Pessoal, sou iniciante no java, venho do .Net, tenho bastante experiencia na plataforma e estou começando a estudar java pois não confio tanto .Net heheh,
não sei se estou postando no lugar certo é meu primeiro post no forum. Bom, a hoje estava tentando criar alguns formularios, com swing utilizando o netbeans,
e percebi que as propriedades dos componentes são um pouco limitadas em relação aos componentes do win forms, não sei é pq estou acostumado com o facilidade que o visual studio traz, e me deixa fazer todas as configurações de componentes pela toolbox, outra coisa, quando crio um formulario no netbeans com swing, ele gera o codigo dos componentes junto com a classe do formulario, o que eu achei estranho, pois fica tudo misturado, e no .net é diferente o formulario tem uma classe responsavel por construir seus componentes, quero saber se é feito dessa forma mesmo que o netbeans cria ou tem alguma outra forma de fazer. Outra coisa é a herança de formularios, não achei como fazer isso, ou não tem como ?

6 Respostas

adrielcafe

Fala Emerson!

Rapaz, no meu caso foi o contrário: depois de ter me aprofundado em JavaSE passei a estudar C# + WinForms, também notei certas diferenças como você citou.

Bom, quanto a questão das propriedades dos controls não vi tanta diferença comparando os controls padrões de cada linguagem. Em C# utilizo os componentes da DevExpress que são muito bons e completos, infelismente não encontramos uma boa gama de componentes do JavaSE, mas por outro lado temos o JSF pro JavaEE :smiley:

E o Java não possui o conceito de “partial class” onde, como você falou, separamos aquelas declarações dos componentes em um arquivo e a implementação em outro arquivo.

Herança de formulários? Tá ai uma coisa que nunca usei :stuck_out_tongue: Isso não sei te informar.

emersonsoares

Opa, ja me esclareceu bastante, mas em relação a herança de formularios que digo, é que la no c# criamos um formulario com alguns componentes e configurações que serão padrão em todos os outros, por exemplo um formulario de cadastro que sempre terá o botão salvar e cancelar, o label de titulo, as cores etc, a gente cria esse formulario de modelo com esses componentes e configurações, dai em todos os formularios de cadastro eu herdo esse formulario modelo, e o formulario ja vem com todos os componentes padrão e configurações padrão, isso é uma mão na roda, e não achei isso com Java, lembrando que o que eu mechi foi bem por cima, ainda não peguei a fundo, e em relação a separação de classes tipo as declarações dos componentes em um arquivo e a implentação do codigo do formulario em outra, é possivel sim então né ? Por que fazendo com o netbeans não consegui ver isso.

Qual a diferença entre esse jsf e jee pro jse ? tipo posso usar o jsf + jee pra desenvolver aplicativos desktop, por exemplo um aplicativo comercial, com pdv e tudo mais, ou ele é indicado para outras coisas ?

Obrigado,

adrielcafe

Infelismente, não é possível usar algo como partial class no Java :frowning:

Percebi que você ainda não tá familiarizado com a sopa de letrinhas do Java né? Aqui vai um resumão:
JSE, J2SE ou Java SE: Plataforma de desenvolvimento para Java DESKTOP.
JEE, J2EE ou Java EE: Plataforma de desenvolvimento para Java WEB.
JME, J2ME ou Java ME: Plataforma de desenvolvimento para Java Mobile (Já está ficando obsoleto, Android é o substituto).
JSF (JavaServer Faces): Poderoso Framework para Java EE. Ele não substitue o Java EE, pelo contrário, incrementa novas funcionalidades e possibilidades :smiley:

Então, respondendo sua última pergunta: com JEE + JSF você desenvolve aplicativos para WEB, e não desktop.

emersonsoares

Realmente não estava familiarizado com tantos nomes hehe, mas agora já entendi, então pra desktop tenho que focar no JSE e Swing né, ou existe algum outro para interfaces desktop ?

adrielcafe

Existe o SWT. A interface é feita com xml, bem parecido com WPF :slight_smile:

Você tem duas opções de IDE (as principais) pra desenvolver:
NetBeas (Swing)
Eclipse + WindowBuilder (Swing + SWT)

Nicolas_Fernandes
emersonsoares:
Opa, ja me esclareceu bastante, mas em relação a herança de formularios que digo, é que la no c# criamos um formulario com alguns componentes e configurações que serão padrão em todos os outros, por exemplo um formulario de cadastro que sempre terá o botão salvar e cancelar, o label de titulo, as cores etc, a gente cria esse formulario de modelo com esses componentes e configurações, dai em todos os formularios de cadastro eu herdo esse formulario modelo, e o formulario ja vem com todos os componentes padrão e configurações padrão, isso é uma mão na roda, e não achei isso com Java, lembrando que o que eu mechi foi bem por cima, ainda não peguei a fundo, e em relação a separação de classes tipo as declarações dos componentes em um arquivo e a implentação do codigo do formulario em outra, é possivel sim então né ? Por que fazendo com o netbeans não consegui ver isso.

Qual a diferença entre esse jsf e jee pro jse ? tipo posso usar o jsf + jee pra desenvolver aplicativos desktop, por exemplo um aplicativo comercial, com pdv e tudo mais, ou ele é indicado para outras coisas ?

Obrigado,

Oi, Emerson!
Cara, eu trabalho com .NET, e sou total entusiasta de JAVA (se eu puder trabalhar com JAVA um dia, vou adorar!).
Tanto no .NET quanto no JAVA você pode fazer sua Herança de formulário:

1. No .NET: Como você mesmo disse, você cria seu Form com os componentes do Windows Form, bonitinho, e sua classe detalhada herda dele, do seguinte modo:
public partial class FormularioPai : Form
{
    public FormularioPai()
    {
        // tudo que é genérico aqui...
    }
}
public partial class FormularioDetalhe : FormularioPai
{
    public FormularioDetalhe() : base() // chama o construtor-pai...
    {
        //seus detalhes aqui...
    }
}
2. No JAVA: É do mesmo jeito, com escritas diferentes. Você cria sua classe-mãe:
public class FormularioPai extends JFrame {

// Coloca tudo que é padrão aqui...
}
E, depois, o formulário filho vai herdar desse de cima:
public class FormularioDetalhe extends FormularioPai {

    public FormularioDetalhe() {
        super(); // chama o pai, onde você colocou o "geralzão".
        // Tudo que é desse formulário...
    }
}

Esse é o modo de tratar essa "herança" de telas, como você queria, nas duas linguagens.
Escolha a que você mais gosta e foque nela, pra se tornar um especialista nisso.

Grande abraço!

Criado 28 de janeiro de 2012
Ultima resposta 29 de jan. de 2012
Respostas 6
Participantes 3