调试不正确的 AWT 显示
我正在尝试使用 AWT 进行对话框等修改现有应用程序。我不知道应用程序的所有代码,所以我不确定对象是如何堆叠的。
我尝试将新的 JButton 添加到没有布局的 JPanel 中。我设置了位置和大小,进行了验证,重新绘制......但没有显示任何内容。现在我有点迷失了 - 我该如何弄清楚为什么会发生这种情况?有没有某种方法可以浏览实时应用程序窗口并查看 AWT 对象树?我该如何解决此类问题?
免责声明:我对 AWT 几乎一无所知。
I'm trying to modify an existing application using AWT for dialogs, etc. I don't know all the code of the application, so I'm not sure how are the objects stacked.
I tried adding a new JButton to a JPanel with no layout. I set location and size, validated, repainted... and nothing is displayed. Now I'm a bit lost - how do I figure out why this happened? Is there some way to poke around a live application window and see the AWT objects tree? How do I approach this kind of problems?
Disclaimer: I know next to nothing about AWT.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
记录!每当您操作 AWT 堆栈上的任何内容时都会进行日志调用。大多数(全部?)AWT 对象也有不错的 toString 方法,因此可以获取和打印组件中的对象并获得有意义的调试信息(即 for(Component c : frame.getComponents()) { System.err.println(c .toString()); } ).
Logging! Making log calls whenever you're manipulating anything on the AWT stack. Most (all?) AWT objects also have decent toString methods, so it's possible to get and print objects in a component and get meaningful debugging information (i.e. for(Component c : frame.getComponents()) { System.err.println(c.toString()); } ).