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!