Dúvidas com primeira aplicação Desktop

Hellow.

Ainda estou começando no mundo Java, porém o pouco conhecimento que tenho está voltado mais para Web.
Estou querendo criar um sistema para Desktop em Java, algo como um controle financeiro pessoal,apenas para ir aprendendo mesmo.

Minhas dúvidas são as seguinte:

1 ) Como o software vai ser um controle financeiro,vou precisar guardar as informações em algum lugar, e para isto vou precisar de um banco de dados.
Eu estava pensando em usar o postgreSQL, mas para isto, em cada máquina que for rodar o sistema,vou precisar ter uma instância client do postgreSQL rodando.
Esta é minha dúvida, em cada máquina que eu for rodar o sistema vou ter que instalar o postgreSQL certo ? Teria como eu startar (iniciar) o serviço do banco apenas quando o software for executado afim de ganho de desempenho no computador ? Eu não queria que o serviço de um banco de dados esteja rodando mesmo quando o meu software não esteja em execução.Deu para entender ? Há como eu rodar o sistema sem por exemplo rodar uma instancia client do banco ?

2 )Para a GUI pensei em usar o Swing.Mas pelo pouco que mechi ele é muito enjoado néh ? Mecho em algo simples e quebra todo o layout,kkk.Vocês recomendam algo semelhante ao Swing ? ( Programei algum tempo em Delphi e acho que me acostumei com a facilidade dele,rsrs ).

3 )Aplicações Desktop eu devo seguir o MVC também néh ?

4 ) Após o término do Sistema, como posso fazer um “Setup” de instalação ? Algum link referência de como executar o aplicativo em outras máquinas ?

Estas são as dúvidas iniciantes.
Obrigado pela atenção

Abraços

No lugar de usar o banco de dados você poderia usar um arquivo .txt ou um formato seu mesmo. Você ainda pode por uma opção de backup no seu programa para reunir todas as informações desses arquivos e salva em um só por exemplo para depois mandar restaurar…

Com isso acho que já resolve seu problema de ter que instalar um banco de dados sempre que precisar usar o programa.

Quanto ao Swing, o que pega mesmo é o gerenciador de layout. Se você aprender a trabalhar com ele não vai ter problemas!

Agora tirando o Swing tem o SWT.

Não sei ao certo mais me parece que pelo que andei lendo o Swing tem mais portabilidade que o SWT.

Abraço.

Para banco de dados…vc pode usar o derby…que é só um jar que vc importa no seu projeto…e ele cria a base de dados inteira…assim vc pode usar como banco de dados acoplado ao seu sistema… o hsqldb também pode funcionar neste modo (acoplado a aplicação)

Quanto a GUI …aí vai da preferencia…eu uso o swing mesmo…e faço as telas no braço mesmo… sendo que tenho modelo de telas em que posso reutilizar… eu não acho o swing complicado… é só dar uma estudada nas apis…

Quanto ao setup de instalação …existem vários instaladores free aí pela net… Um que usei já foi o IZPACK… mas tem muitos por aí…

  1. Mano, eu utilizo o Oracle e, neste caso, não precisa de cliente instalado. Apenas o .jar que a Oracle disponibiliza. Ainda não mexi com PostgreeSQL no Java, mas creio que seja do mesmo jeito.

  2. Swing você terá mais recursos, com certeza.

  3. Fica por sua conta.

  4. Procure por Java Web Start (JWS). Além de instalar o programa nos clientes ele permite uma atualização sem traumas.

Inté.

  1. Podes usar XML para armazenar. XStream faz isso pra você (Serializa/Deserializa) suas classes de maneira transparente. Se seu sistema for para grande volume de dados, já recomendo usar JavaDB ou como já disseram, HSQLDB, Derby, Etc… Neste site: http://java-source.net/open-source/database-engines você encontra diversas engines.

  2. Swing. É chato, é, mas use Netbeans + Matisse que facilita.

  3. Sim!

  4. Podes usar qualquer gerador de setup. Eu recomendo InnoSetup, que é bem fácil, apesar de no seu caso ser interessante um quer já verifique a JVM, etc… aqui tem uma lista, destaco IzPack. http://java-source.net/open-source/installer-generators

Boa sorte!