Remodelamento de arquitetura!

0 respostas
grlongo

Pessoal, tenho um sistema em Java que preciso fazer umas alterações! Tudo estava indo até eu ter que modificar minha MainClasse!

Basicamente eu tenho um sistema de JDesktop e JInternalFrames dividido em 2 classes!

1 - A MainClasse que contêm a descrição do meu JDesktop, Menu e actions!
2 - E meu segundo arquivo é meu JInternalFrame que foi desenvolvido usando os componentes do swing.

O que eu preciso alterar é a MainClass. Preciso separar o layout do menu em uma classe diferente junto com suas ActionsPerformed e deixar o JDesktop na MainClass!

O sistema funciona normalmente com 2 classe mas depois que eu dividi a MainClass eu não recebo nenhum erro de compilação mas os meus botões simplesmente não funcionam! *Lembrando que nào foi feita nenhuma alteração neles, ou seja eles estão corretamente programados

Abaixo segue o código!
Eu suspeito que estou errando na hora de instanciar o JDesktop que esta na MainClass no MenuLayout (A nova classe)

Essa é minha MainClass

1. package libultra; 2. 3. import java.awt.BorderLayout; 4. import java.awt.Container; 5. 6. import javax.swing.JFrame; 7. import javax.swing.JPanel; 8. import javax.swing.JScrollPane; 9. import javax.swing.JTextArea; 10. import javax.swing.SwingUtilities; 11. 12. public class MainClass_bak { 13. public MainClass_bak() { 14. } 15. 16. JTextArea output; 17. JScrollPane scrollPane; 18. 19. 20. public Container createContentPane() { 21. 22. JPanel contentPane = new JPanel(new BorderLayout()); 23. contentPane.setOpaque(true); 24. output = new JTextArea(5, 30); 25. output.setEditable(false); 26. scrollPane = new JScrollPane(output); 27. contentPane.add(scrollPane, BorderLayout.CENTER); 28. 29. return contentPane; 30. } 31. 32. private static void createAndShowGui() { 33. 34. MenuLayout mlay = new MenuLayout(); 35. JFrame frame = new JFrame("Tela Principal"); 36. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 37. frame.setJMenuBar(mlay.createMenuBar()); 38. 39. JFrame.setDefaultLookAndFeelDecorated(true); 40. frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 41. frame.setUndecorated(false); 42. 43. 44. //frame.pack(); 45. frame.setVisible(true); 46. } 47. 48. public static void main(String[] args) { 49. 50. 51. SwingUtilities.invokeLater(new Runnable() { 52. public void run() { 53. createAndShowGui(); 54. } 55. }); 56. } 57. }

Essa é a classe nova que eu criei p/ o LayOut do Menu

1. package libultra; 2. 3. import java.awt.Container; 4. import java.awt.Dimension; 5. import java.awt.Toolkit; 6. import java.awt.event.ActionEvent; 7. import java.awt.event.ActionListener; 8. import java.awt.event.KeyEvent; 9. 10. import javax.swing.JDesktopPane; 11. import javax.swing.JMenu; 12. import javax.swing.JMenuBar; 13. import javax.swing.JMenuItem; 14. import javax.swing.KeyStroke; 15. 16. public class MenuLayout implements ActionListener { 17. public MenuLayout1() { 18. } 19. 20. public JMenuBar createMenuBar() { 21. JMenuBar menuBar; 22. JMenu menu; 23. JMenuItem uact, exit, usr, docreg, per, art, edt, aut, kwords, dstt, hist, stt, bk, db, st, it, clt, tt, udit, cdu, ct, ureg, parm, top, abt; 24. 25. 26. menuBar = new JMenuBar(); 27. 28. 29. menu = new JMenu("File"); 30. menu.setMnemonic(KeyEvent.VK_F); 31. menu.getAccessibleContext().setAccessibleDescription("The only menu in this program that has menu items"); 32. menuBar.add(menu); 33. 34. uact = new JMenuItem("User Activation", KeyEvent.VK_U); 35. uact.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK)); 36. uact.getAccessibleContext().setAccessibleDescription("nothing yet"); 37. uact.setActionCommand("uact"); 38. menu.add(uact); 39. 40. 41. exit = new JMenuItem("Exit", KeyEvent.VK_E); 42. exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.ALT_MASK)); 43. exit.getAccessibleContext().setAccessibleDescription("nothing yet"); 44. exit.setActionCommand("exit"); 45. menu.add(exit); 46. 47. 48. menu = new JMenu("Main Registers"); 49. menu.setMnemonic(KeyEvent.VK_M); 50. menu.getAccessibleContext().setAccessibleDescription("This menu does nothing"); 51. menuBar.add(menu); 52. 53. 54. usr = new JMenuItem("User Register", KeyEvent.VK_U); 55. usr.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK)); 56. usr.getAccessibleContext().setAccessibleDescription("nothing yet"); 57. usr.setActionCommand("usr"); 58. menu.add(usr); 59. 60. docreg = new JMenuItem("Collection", KeyEvent.VK_C); 61. docreg.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4, ActionEvent.ALT_MASK)); 62. docreg.getAccessibleContext().setAccessibleDescription("nothing yet"); 63. docreg.setActionCommand("docreg"); 64. menu.add(docreg); 65. 66. per = new JMenuItem("Periodicals", KeyEvent.VK_P); 67. per.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_5, ActionEvent.ALT_MASK)); 68. per.getAccessibleContext().setAccessibleDescription("nothing yet"); 69. menu.add(per); 70. 71. art = new JMenuItem("Articles", KeyEvent.VK_A); 72. art.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_6, ActionEvent.ALT_MASK)); 73. art.getAccessibleContext().setAccessibleDescription("nothing yet"); 74. menu.add(art); 75. 76. 77. menu = new JMenu("Extra Registers"); 78. menu.setMnemonic(KeyEvent.VK_X); 79. menu.getAccessibleContext().setAccessibleDescription("This menu does nothing"); 80. menuBar.add(menu); 81. 82. edt = new JMenuItem("Editors", KeyEvent.VK_E); 83. edt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_7, ActionEvent.ALT_MASK)); 84. edt.getAccessibleContext().setAccessibleDescription("nothing yet"); 85. menu.add(edt); 86. 87. aut = new JMenuItem("Authors", KeyEvent.VK_A); 88. aut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_8, ActionEvent.ALT_MASK)); 89. aut.getAccessibleContext().setAccessibleDescription("nothing yet"); 90. menu.add(aut); 91. 92. kwords = new JMenuItem("Key Words", KeyEvent.VK_K); 93. kwords.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_9, ActionEvent.ALT_MASK)); 94. kwords.getAccessibleContext().setAccessibleDescription("nothing yet"); 95. menu.add(kwords); 96. 97. 98. menu = new JMenu("Loans"); 99. menu.setMnemonic(KeyEvent.VK_L); 100. menu.getAccessibleContext().setAccessibleDescription("This menu does nothing"); 101. menuBar.add(menu); 102. 103. 104. menu = new JMenu("Control"); 105. menu.setMnemonic(KeyEvent.VK_C); 106. menu.getAccessibleContext().setAccessibleDescription("This menu does nothing"); 107. menuBar.add(menu); 108. 109. dstt = new JMenuItem("Daily Statistics", KeyEvent.VK_D); 110. dstt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.ALT_MASK)); 111. dstt.getAccessibleContext().setAccessibleDescription("nothing yet"); 112. menu.add(dstt); 113. 114. hist = new JMenuItem("Historic", KeyEvent.VK_H); 115. hist.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, ActionEvent.ALT_MASK)); 116. hist.getAccessibleContext().setAccessibleDescription("nothing yet"); 117. menu.add(hist); 118. 119. stt = new JMenuItem("Statistic", KeyEvent.VK_S); 120. stt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.ALT_MASK)); 121. stt.getAccessibleContext().setAccessibleDescription("nothing yet"); 122. menu.add(stt); 123. 124. 125. menu = new JMenu("Maintenance"); 126. menu.setMnemonic(KeyEvent.VK_T); 127. menu.getAccessibleContext().setAccessibleDescription("This menu does nothing"); 128. menuBar.add(menu); 129. 130. bk = new JMenuItem("Backup", KeyEvent.VK_B); 131. bk.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.ALT_MASK)); 132. bk.getAccessibleContext().setAccessibleDescription("nothing yet"); 133. menu.add(bk); 134. 135. db = new JMenuItem("Database", KeyEvent.VK_D); 136. db.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, ActionEvent.ALT_MASK)); 137. db.getAccessibleContext().setAccessibleDescription("nothing yet"); 138. menu.add(db); 139. 140. st = new JMenuItem("Source Table", KeyEvent.VK_S); 141. st.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.ALT_MASK)); 142. st.getAccessibleContext().setAccessibleDescription("nothing yet"); 143. menu.add(st); 144. 145. clt = new JMenuItem("Collection Localization Table", KeyEvent.VK_C); 146. clt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.ALT_MASK)); 147. clt.getAccessibleContext().setAccessibleDescription("nothing yet"); 148. menu.add(clt); 149. 150. it = new JMenuItem("Idiom Table", KeyEvent.VK_I); 151. it.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, ActionEvent.ALT_MASK)); 152. it.getAccessibleContext().setAccessibleDescription("nothing yet"); 153. menu.add(it); 154. 155. tt = new JMenuItem("Type Table", KeyEvent.VK_T); 156. tt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.ALT_MASK)); 157. tt.getAccessibleContext().setAccessibleDescription("nothing yet"); 158. menu.add(tt); 159. 160. udit = new JMenuItem("UD Initials Table", KeyEvent.VK_U); 161. udit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.ALT_MASK)); 162. udit.getAccessibleContext().setAccessibleDescription("nothing yet"); 163. menu.add(udit); 164. 165. cdu = new JMenuItem("CDU", KeyEvent.VK_U); 166. cdu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.ALT_MASK)); 167. cdu.getAccessibleContext().setAccessibleDescription("nothing yet"); 168. menu.add(cdu); 169. 170. ct = new JMenuItem("Cutter", KeyEvent.VK_R); 171. ct.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, ActionEvent.ALT_MASK)); 172. ct.getAccessibleContext().setAccessibleDescription("nothing yet"); 173. menu.add(ct); 174. 175. ureg = new JMenuItem("User Register", KeyEvent.VK_G); 176. ureg.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.ALT_MASK)); 177. ureg.getAccessibleContext().setAccessibleDescription("nothing yet"); 178. menu.add(ureg); 179. 180. parm = new JMenuItem("Parameters", KeyEvent.VK_P); 181. parm.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.ALT_MASK)); 182. parm.getAccessibleContext().setAccessibleDescription("nothing yet"); 183. menu.add(parm); 184. 185. menu = new JMenu("Help"); 186. menu.setMnemonic(KeyEvent.VK_T); 187. menu.getAccessibleContext().setAccessibleDescription("This menu does nothing"); 188. menuBar.add(menu); 189. 190. top = new JMenuItem("Topics", KeyEvent.VK_T); 191. top.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.ALT_MASK)); 192. top.getAccessibleContext().setAccessibleDescription("nothing yet"); 193. menu.add(top); 194. 195. abt = new JMenuItem("About", KeyEvent.VK_A); 196. abt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.ALT_MASK)); 197. abt.getAccessibleContext().setAccessibleDescription("nothing yet"); 198. menu.add(abt); 199. 200. 201. uact.setToolTipText("Activate new registered users"); 202. exit.setToolTipText(""); 203. usr.setToolTipText("Register new users"); 204. docreg.setToolTipText("Register items in the collection"); 205. per.setToolTipText("Register periodical in the collection"); 206. art.setToolTipText("Register Articles in the collection"); 207. edt.setToolTipText("Register editors in the system"); 208. aut.setToolTipText("Register authors inthe system"); 209. kwords.setToolTipText("Register Key Works in the system"); 210. dstt.setToolTipText("Daily Statistics Report"); 211. hist.setToolTipText("User Historic"); 212. stt.setToolTipText("Custom Statistics Report"); 213. bk.setToolTipText("System Backup"); 214. db.setToolTipText("DB Tools"); 215. st.setToolTipText("Source register table"); 216. it.setToolTipText("Idiom register table"); 217. clt.setToolTipText("Collection Localization Register table"); 218. tt.setToolTipText("Type register table"); 219. udit.setToolTipText("UD Initials Register table"); 220. cdu.setToolTipText("CDU"); 221. ct.setToolTipText("Cutter"); 222. ureg.setToolTipText("User Register Form"); 223. parm.setToolTipText("System Parameters - BE CAREFULL -"); 224. top.setToolTipText("Find help by topics"); 225. abt.setToolTipText("System Information"); 226. 227. exit.addActionListener(this); 228. uact.addActionListener(this); 229. usr.addActionListener(this); 230. docreg.addActionListener(this); 231. 232. 233. return menuBar; 234. } 235. [b] 236. public void actionPerformed(ActionEvent e) { 237. if ("uact".equals(e.getActionCommand())) { 238. UsrAct(); [/b] 239. } 240. if ("exit".equals(e.getActionCommand())) { 241. quit(); 242. } 243. if ("usr".equals(e.getActionCommand())) { 244. UsrReg(); 245. } 246. if ("colt".equals(e.getActionCommand())) { 247. docreg(); 248. } else { 249. 250. } 251. } 252. 253. private void quit() { 254. System.exit(0); 255. } 256. [b] 257. private void UsrAct() { 258. Container con; 259. UsrAct ua = new UsrAct(); 260. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 261. ua.setLocation((int)((screenSize.width - ua.getWidth()) / 2), 262. (int)((screenSize.height - ua.getHeight()) / 2)); 263. ua.setVisible(true); 264. 265. }[/b] 266. 267. private void UsrReg() { 268. Rep ur = new Rep(); 269. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 270. ur.setLocation((int)((screenSize.width - ur.getWidth()) / 2), 271. (int)((screenSize.height - ur.getHeight()) / 2)); 272. ur.setVisible(true); 273. } 274. 275. private void docreg() { 276. DocReg docreg = new DocReg(); 277. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 278. docreg.setLocation((int)((screenSize.width - docreg.getWidth()) / 2), 279. (int)((screenSize.height - docreg.getHeight()) / 280. 2)); 281. docreg.setVisible(true); 282. } 283. 284. }

Só p constar, tb tentei fazer da seguinte maneira o método que chama meu InternalFrame:

private void UsrAct() { UsrAct ua = new UsrAct(); MainClass mclass = new MainClass(); <--- Classe que ta meu JDesktopPanw JDesktopPane jd = mclass.desktop; <--- Fiz uma referência a ele adicionando-o em uma variavel! Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); ua.setLocation((int) ((screenSize.width - ua.getWidth()) / 2), (int)((screenSize.height - ua.getHeight()) / 2)); ua.setVisible(true); <-- Setei o form que abre quando clico no menu como visible jd.add(ua); <-- E o adicionei no meu JDesktopPane! try { ua.setSelected(true); } catch (java.beans.PropertyVetoException e) {}

Bom, é só! Eu estou a quase 1 mês batalhando com isso! Listas de Discussões, foruns, amigos…! Ta difícil!
Alguêm já desenvolveu esse esquema de JDesktop + JInternalFrame com menu + actions e Jdesktop em classes diferente??

Muito Obrigado!

Criado 13 de agosto de 2008
Respostas 0
Participantes 1