Boa noite, estou iniciando com aprendizado Java Desktop assistindo Vídeo Aulas no DevMidia e gostaria de tirar algumas dúvidas (me corrijam se estiver algo errado, pois assim também aprendo).
1 - Vi que existem em 2 API de Interface Gráfica em Java: AWT (mais antiga), Swing (utilizada atualmente). Porém em toda parte da Vídeo Aula é utilizada a construção de Componente via Código, nenhum Drag And Drop, o que na minha opinião diminui a produtividade do desenvolvimento. Existe alguma ferramenta para em vez de criar o componente pelo código apenas arraste e jogue na tela ?
2 - Um amigo, que já trabalha com Java a algum tempo, me disse que é muito melhor usar Java no Eclipse pela questão da diversidade de plugins que o mesmo oferece, porém nas aulas que estou assistindo só é utilizado o NetBeans. Será que eu teria muito problema em continuar utilizando o netbeans e depois que eu me adaptar com a linguagem mudar para o Eclipse ? Seria uma mudança dificil ?
3 - Quais as principais ferramentas ou frameworks utilizadas no desenvolvimento de java desktop, em sistemas de crud simples. Ex: Cadastro de Clientes de uma Empresa, ou Agenda.
1 - Não tem para onde correr, vai precisar do AWT pois o Swing utiliza os componentes antigos também, como formatação de cor, por exemplo;
2 - Eu, prefiro muito mais o NetBeans ao Eclipse, principalmente quando o assunto em questão for desktop, pois o NetBeans vem com um bom suporte para Swing e Swing Application. Mas IDE também é questão de gosto.
3 - Se quer fazer um sistema de Swing, veja o que melhor lhe atende:
Geralmente usa-se muito MDI para criação de vários sub-formulários/sub-janelas numa janela maior;
Aprenda e domine o uso de listeners no Swing, é de fundamental importância saber utiliza-los;
Aprenda o conceito de ThreadLocal do Swing e o uso de threads para componentes que precisam de respostas independentes, como a exemplo de um progress bar, saiba dar refresh na tela com o recurso de Graph do Swing;
Se você quer algo mais avançado, pode-se estender o JComponent para criação de seus próprios componentes. Já trabalhei em um projeto que usamos recursos avançados de Swing com criação de componentes e uso de OpenOffice embarcado no próprio Swing com interceptação de comandos.
1 - No Eclipse tem um plugin chamado windowbuilder que faz isso de arrastar os componentes.
2 - Seu amigo ao meu ver está correto, prefiro tambem o eclipse. Mas isso vai de desenvolvedor para desenvolvedor, a ide pode mudar mas tudo é java, creio que não terá dificuldades.
3 - Uma das ferramentas que é fundamental no desenvolvimento desktop em java é o Windowbuilder se vc trabalha com o eclipse.
Um framework que não pode faltar no desenvolvimento tambem desktop qto no web é o hibernate.
Para desenvolvimento procure ver tambem o mvc que deixar o seu código mais organizado em packages.