View Full Version : O meu primeiro programa com interface gráfico :D


CrazyBomber
10-06-2006, 05:54
Boas.
Eu sei que é um bocado tarde, mas parece-me que a partir das 2 da manhã é quando programo melhor :D

Então a minha experiência com interfaces gráficos tinha sido, até agora, algo limitada. Fiz algumas coisitas para telemóvel, algumas applets, e umas páginas em PHP. Mas agora, finalmente, lá consegui fazer uma aplicaçãozita mais fixe, e tou todo contente :D

É muito básica (tb só levou 1 hora e pouco a programar), mas é algo que a minha namorada me tinha até pedido: uma maneira fácil de ir somando números. Ela trabalha muito com estatísticas, pelo que dá-lhe jeito algo que seja só meter o número, carregar no enter, e continuar.

Já lhe tinha criado uma aplicação pra correr na consola, mas agora decidi-me a ir explorar mais os IDE's que por aí andam.

Como tinha trabalhado recentemente (tipo a semana que passou lol) com o Netbeans (www.netbeans.org), e sabia que aquilo tinha umas features engraçadas para desenvolvimento de aplicações "móveis", decidi ver o que tinha para aplicações "normais".

Dumb me, tava lá o interface todo jeitoso e apetitoso, mesmo a pedir para ser usado e abusado. É incrível o aumento de produtividade com um IDE destes. Eu teria perdido HORAS só a criar e ajustar os botões, textos, etc.

Ok, então comecei a ver aquilo, e o código foi gerado quase todo automáticamente. Só tive de fazer mesmo a parte da "acção", que é tão simples como seleccionar um evento para um objecto, e fazer o corpo da função que ele gera automáticamente. Assim, só tive mesmo de espetar uns quantos botões, umas caixas de texto, e fazer 3 funções: o carregar no "enter" quando está a caixa de texto seleccionada, o carregar no botão de "reset", e o botão de "undo". Ah, também criei uma classezita auxiliar à parte, para conseguir fazer bem a cena do "undo" (voltar atrás...), com auxilio de um Vector.

Enfim, entreti-me aqui a programar, o tempo vôo, e agora gostava de partilhar o meu resultado com o pessoal :D

Ah, também fui à procura de uma maneira de converter os .JAR's em executáveis (um wrapperzito, portanto), e encontrei um opensource, bem jeitoso: JSmooth (http://jsmooth.sourceforge.net/).

Ok, resumindo, usei:
Java SDK Standart Edition (http://java.sun.com/javase/)
Netbeans (www.netbeans.org)
JSmooth (http://jsmooth.sourceforge.net/)

Tudo software "livre" :)

Podem sacar aqui o projecto todo: CalcRap.zip (292KB) (http://alunos.uevora.pt/~l17732/CalcRap.zip)

Inclui: o ficheiro .exe, source code, e tudo o resto que o Netbeans gera automáticamente.

Peço desculpa se alguém se ofendeu a ler um texto tão grande para uma coisa tão pequenina, mas esta é daquelas alturas em que me apetece beber 3 litros de café e não parar de programar :D

PS: já me esquecia... o programazito suporta UNDO ilimitado (até 16Megas de undo's lol! :D), pode fazer as 4 operações básicas (soma, subtracção, multiplicação e divisão), e é só ir escrevendo os números e carregar no enter! :D

Fica aqui um screenshot:
http://alunos.uevora.pt/~l17732/calcrap.JPG

Alone I Break
10-06-2006, 09:43
As screenshots não estão a funcionar. :P
Até testava a app e dava feedback mas estou no Ubuntu , fico-me pela screenshot. :P

EDIT: pelos vistos é mesmo do host.

CrazyBomber
10-06-2006, 12:20
Sorry pelo broken link :sad:

Alguém lá em casa deve ter mandando o server abaixo, ou então caíu a net mesmo.

Já editei os links, meti no server da Univ :D

CrazyBomber
10-06-2006, 14:15
Tinha de continuar! :sad:

Está aqui a versão 2, que guarda, carrega, e apaga cálculos (valor final + conjunto de operações):
CalcRapv2.zip (299KB) (http://alunos.uevora.pt/~l17732/CalcRapv2.zip)

Mais uma vez, vai o código fonte todo :)

Screenshot:
http://alunos.uevora.pt/~l17732/calrap2.JPG

kronos
10-06-2006, 16:28
ate é bastante util e pratico, eu se fosse ti implementava um key listener para trocar o radio button, em jva grafico tens uma classe para isso ( n me lembro do nome).

por exemplo a - soma, s - sub, d - mult

tecla pressionada troca imediamente a opção o que resultaria bastante pratico para a tua namorada ;)

também podes usar os simbolos das operações mas lixas a vida ao pessoal dos portateis;)

cumps

CrazyBomber
10-06-2006, 18:56
Roger that :D

Qd puder vou fazer isso :)
o pc tá nas mãos da minha irmã...:sad:

Ah, thanks pelo feedback :x2:

CrazyBomber
11-06-2006, 01:11
Bem, agora tenho que pedir alguma ajuda.

Estou a tentar criar uma cenazita pra abrir uma janelita (JFrame) quando se carrega no botão.

Para isso, é só chamar a função setVisible( true ) da dita cuja.

O problema é que a primeira vez que abre, aparece vazia!
Só à segunda vez é que aparecem as caixas de texto com os valores, etc.

Depoisp, ainda há mais uma "irritação": quando se fecha essa janela, ela não devolve o focus à janela original! Não devia fazer isso automáticamente? não sei porquê, perfere meter em foco a janela do Netbeans :sad:

Se alguém conseguir dar umas dicas... já andei a googlar mas não encontrei nada :sad:


EDIT:
Experimentei usar um JDialog em vez da JFrame, mas o resultado foi precisamente o mesmo :sad:

CrazyBomber
11-06-2006, 03:56
Bem, um dos problemas já resolvi: o de o gajo não focar de novo a janela original.

Está aqui a versão 3 (http://alunos.uevora.pt/~l17732/CalcRapv3.zip) (Beta :D), que tem como novas features:
- atalhos para selecção da operação (a tecla está entre [])
- redo! se fizerem undo, depois podem fazer redo :D
- redo's guardados, tal como os undo's
- editar o nome dos cálculos guardados (para já, mesmo só o nome...)

O que eu me divirto com isto :x2:

bugs por resolver:
a 1ª janela de edit vem sempre vazia! :sad:
a lista de resultados guardados não actualiza automáticamente qd se altera o nome de um cálculo. é preciso ir lá clicar. Já tentei alguns métodos, como repaint(), paint(), componentPaint(), etc. Ainda não encontrei nada que resultasse :sad:

screenie:
http://alunos.uevora.pt/~l17732/calcrap3.JPG

Em princípio este "mini-programa" fica por aqui. A seguir vou tentar fazer um programa mais "a sério" :x2: