Linguagem de Programação – Prof. Samuel Antonio Vieira Trabalhando com GridBagLayout
O GridBagLayout é um layout mais sofisticado, ois ermite uma alocação de recursos em tios de !grade" no comonente assando as determinaç#es em $ e %.
&a osição $'(, $'(, %'), %'), o comonente comonente utili*ado foi um +Lael +Lael com orda e $'(,%'- foi utili*ado um noo comonente c/amado +0omoBo1. Basicamente o +2rame est3 diidido em duas regi#es, centro e sul, onde no centro est3 o anel com GridBagLayout GridBagLayout e no Sul Sul um 2lo4Layout. Classe FrmOperacoes 1. 2. 3. 4. 5. 6. 7. 8. 9. 1). 11. 12. 13. 14. 15. 16. 17. 18. 19. 2). 21. 22. 23. 24. 25.
com.gui.aritmetica; com.gui.aritmetica; java.awt.*; java.awt.event.*; java.awt.event.*; javax.swing.*; com.aritmetica.*; com.aritmetica.*; "rm#peracoes "rm#peracoes
%"rame
&ction'istener( &ction'istener(
%ane! jpn!+entro jpn!+entro; ; %ane! jpn!,u! jpn!,u!; ; %'ae! rotu!o1 rotu!o1; ; %'ae! rotu!o2 rotu!o2; ; %'ae! rotu!o3 rotu!o3; ; %'ae! rotu!o4 rotu!o4; ; %'ae! j!!-esu!ta$o j!!-esu!ta$o; ; %ext"ie!$ jtxt/um1 jtxt/um1; ; %ext"ie!$ jtxt/um2 jtxt/um2; ; %+omo0ox jcm#percao ; %0utton jtn+a!cu!ar ; %0utton jtn'impar ; %0utton jtn,air ; ri$0ag+onstraints gc gc; ; ,tring operacoes operacoes ( &$io &$io ,utrao ,utrao
( 5 6 roiida a rerodução deste material sem a autori*ação do autor. autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 26. 27. 28. 29. 3). 31. 32. 33. 34. 35. 36. 37. 38. 39. 4). 41. 42. 43. 44. 45. 46. 47. 48. 49. 5). 51. 52. 53. 54. 55. 56. 57. 58. 59. 6). 61. 62. 63. 64. 65. 66. 67. 68. 69. 7). 71. 72. 73. 74. 75. 76. 77. 78. 79. 8). 81. 82.
u!tip!icao :iviso ; "rm#peracoes<= ( set'a>out<
0or$er'a>out<==;
gc ri$0ag+onstraints<=; gc.anc?or ri$0ag+onstraints.'&,.@'A/B@,.&-. ; gc.insets Ansets<5 5 5 5=; jpn!+entro %ane!< ri$0ag'a>out<==; jpn!,u! %ane!< "!ow'a>out<==; rotu!o1 rotu!o2 rotu!o3 rotu!o4
%'ae!</Cmero 1D =; %'ae!</Cmero 2D =; %'ae!<-esu!ta$oD =; %'ae!<#peraoD =;
j!!-esu!ta$o %'ae!<)=; j!!-esu!ta$o.set0or$er<0or$er"actor>. create0eve!0or$er <1==; j!!-esu!ta$o.setreEerre$,iFe< :imension<11419==; jtxt/um1 jtxt/um2 jcm#percao
%ext"ie!$<1)=; %ext"ie!$<1)=; %+omo0ox
jtn+a!cu!ar %0utton<+a!cu!ar=; jtn'impar %0utton<'impar=; jtn,air %0utton<,air=; a$$out.+B/.B- =; a$$out.,#G.H =; gc.gri$x ); gc.gri$> ); jpn!+entro.a$$ ); jpn!+entro.a$$ 1; jpn!+entro.a$$ 1; jpn!+entro.a$$ 2; jpn!+entro.a$$ 2;
) 5 6 roiida a rerodução deste material sem a autori*ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 83. 84. 85. 86. 87. 88. 89. 9). 91. 92. 93. 94. 95. 96. 97. 98. 99. 1)). 1)1. 1)2. 1)3. 1)4. 1)5. 1)6. 1)7. 1)8. 1)9. 11). 111. 112. 113. 114. 115. 116. 117. 118. 119. 12). 121. 122. 123.
jpn!+entro.a$$ 3; jpn!+entro.a$$ 3; jpn!+entro.a$$stem.exit <)=;
- 5 6 roiida a rerodução deste material sem a autori*ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira Diagrama de classe
A classe Operacao é uma classe astrata, ela ser3 ase ara todas as oeraç#es. Possui um método astrato executar() 7ue ser3 origado a ser imlementada or todas as suas classes fil/as. Outra noidade é a isiilidade do método setResultado(), ele é rotegido, o 7ue significa 7ue aenas as classes fil/as oderão 85lo. Sobrecarga de métodos
9uando dois métodos t8m o mesmo nome e assinaturas diferentes é c/amado de sorecarga de método, isso acontece com setNumero1() e setNumero2().
Classe Operacao 1. 2. 3. 4. 5. 6. 7. 8. 9. 1). 11. 12. 13. 14. 15.
com.aritmetica; #peracao ( numero1; numero2; resu!ta$o; executar<=; get/umero1<= ( numero1;
: 5 6 roiida a rerodução deste material sem a autori*ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 16. 17. 18. 19. 2). 21. 22. 23. 24. 25. 26. 27. 28. 29. 3). 31. 32. 33. 34. 35. 36. 37. 38. 39. 4). 41. 42. 43.
set/umero1< .numero1 numero1;
numero1= (
set/umero1<,tring numero1= ( .numero1 :ou!e.parse:ou!e
numero2= (
set/umero2<,tring numero2= ( .numero2 :ou!e.parse:ou!e
resu!ta$o= (
get-esu!ta$o<= ( resu!ta$o ;
Classe Adicao 1. 2. 3. 4. 5. 6. 7. 8. 9. 1). 11. 12. 13. 14.
com.aritmetica; &$icao
#peracao (
K#verri$e executar<= ( res ); res get/umero1<= L get/umero2<=; set-esu!ta$o
Classe Subtracao 1. 2. 3. 4. 5. 6. 7. 8.
com.aritmetica; ,utracao
#peracao (
K#verri$e executar<= ( res );
; 5 6 roiida a rerodução deste material sem a autori*ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 9. 1). 11. 12. 13. 14.
res get/umero1<= M get/umero2<=; set-esu!ta$o
Classe Multiplicacao 1.
com.aritmetica;
2. 3. 4. 5. 6. 7. 8. 9. 1). 11. 12. 13. 14.
u!tip!icacao
#peracao (
K#verri$e executar<= ( res ); res get/umero1<= * get/umero2<=; set-esu!ta$o
Classe Diisao com.aritmetica; :ivisao
#peracao (
K#verri$e executar<= ( res ); ( res get/umero1<= J get/umero2<=; stem.out .print!n<Brro ao $ivi$ir.=; ,>stem.out .print!n
< 5 6 roiida a rerodução deste material sem a autori*ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 0odificando o otao calcular 1)9.
11). #peracao oj#peracao ; 111. 112.
= 5 6 roiida a rerodução deste material sem a autori*ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira
+OtionPane são cai1as de di3logos simles ara a interação com o usu3rio. Basicamente e1istem> s/o4?nut@ialog
s/o4essage@ialog
s/o40onfirm@ialog
1emlo> 1. javax.swing.%#ptionane; 2. 3. 4. &p!icativo%#p ( 5. 6. J** 7. * args 8. *J 9. main<,tring args= ( 1). ,tring msg ; 11. resposta ); 12. 13. JJ%#ptionane./#@#A#/ P Quan$o o usuario se!eciona / na caixa $e conEirmacao. 14. 15.
C 5 6 roiida a rerodução deste material sem a autori*ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 19. %#ptionane.s?ow9essage:ia!og < msg=; 2). 21. resposta %#ptionane.s?ow+onEirm:ia!og < :eseja $igitar outra mensagemR=; 22. 23. 24. 25. 26. 27.
el/orando as cai1as de mensagem> Outros arDmetros 7ue odem ser assados são, logo aEs a mensagem, o tFtulo e Fcone a ser aresentado, estes serem ara o input e messagem; %#ptionane.s?owAnput:ia!og < %optionane.B--#-@9B,,&1B =
:igite o nCmero $e !a$osD rograma
&o confirm, ode5se tamém, aresentar os ot#es a serem aresentados. %#ptionane.s?ow+onEirm:ia!og < :eseja $igitar outro nCmeroR ergunta %#ptionane.SB,@/#@#*.A#/ %#ptionane.T&-/A/1@9B,,&1B =
1> 1. 2. 3. 4. 5. 6. 7. 8. 9. 1). 11. 12. 13. 14. 15. 16. 17. 18. 19. 2). 21. 22. 23. 24. 25. 26. 27. 28.
javax.swing.%#ptionane; &p!icativo"igura ( J** * *J
args main<,tring args= ( !a$os ); resposta ); ,tring msg ;
5 6 roiida a rerodução deste material sem a autori*ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 29. 3). 31. 32. 33. 34. 35. 36. 37. 38. 39.
msg
4). 41.
resposta %#ptionane.s?ow+onEirm:ia!og < :eseja $igitar outro nCmeroR ergunta %#ptionane.SB,@/#@#*.A#/ %#ptionane.T&-/A/1@9B,,&1B =; 42. 43. 44. 45. 46.
!sando o s"itch#
6 uma estrutura de decisão 7ue ode ser utili*ada 7uando é necess3rio testar a mesma ari3el 3rias e*es de forma seguida.
1>
(. import javax.swing.%#ptionane; 2. 3. 4. 5. 6. 7. 8. 9. 1). 11.
&p!icativo"igura2 ( J** * *J
args main<,tring args= ( !a$os ); resposta ); ,tring msg ;
(H 5 6 roiida a rerodução deste material sem a autori*ação do autor.
Linguagem de Programação – Prof. Samuel Antonio Vieira 12. 13.
(( 5 6 roiida a rerodução deste material sem a autori*ação do autor.