gpt4 book ai didi

java - 在 jDesktopPane 的中心打开 jInternalFrame

转载 作者:行者123 更新时间:2023-12-01 10:14:49 25 4
gpt4 key购买 nike

我正在使用 Netbeans 在 Java 中创建和应用程序。我有 1 个 jFrame,上面几乎没有 jmenus、jdesktoppane 和 jinternalframes。现在我的问题是我无法将 jInternalFrame 设置在 jDesktopPane 的中心。我需要来自 stackoverflow post 的帮助是这样提到的

Dimension desktopSize = desktopPane.getSize();
Dimension jInternalFrameSize = jInternalFrame.getSize();
jInternalFrame.setLocation((desktopSize.width - jInternalFrameSize.width)/2,
(desktopSize.height- jInternalFrameSize.height)/2);

我根据我的使用情况改变了这个 -

Dimension desktopSize = this.getDesktopPane().getSize(); // Line No. 29
Dimension jInternalFrameSize = this.getSize();
this.setLocation((desktopSize.width - jInternalFrameSize.width)/2,
(desktopSize.height- jInternalFrameSize.height)/2);

但是我的代码抛出 NullPointerException -

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at newUserReg.(newUserReg.java:29) at smsMDI.mnuNewUserActionPerformed(smsMDI.java:278) at smsMDI.access$000(smsMDI.java:16) at smsMDI$2.actionPerformed(smsMDI.java:97) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877) at java.awt.Component.processMouseEvent(Component.java:6504) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6269) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4860) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4686) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2713) at java.awt.Component.dispatchEvent(Component.java:4686) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:680) at java.awt.EventQueue$4.run(EventQueue.java:678) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:677) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

如果有人可以解释或向我展示执行此操作的正确方法,那将对我有很大帮助。

最佳答案

您更改了找到的代码并添加了 getDesktopPane() 方法。

我猜您尚未将内部框架添加到桌面 Pane ,因此该方法返回 null。

为什么要更改代码?您必须有对桌面 Pane 的引用才能将内部框架添加到桌面 Pane 。因此,只需使用该引用即可。

我建议您从 Swing 教程 How to Use Internal Frames 部分中找到的工作代码开始。 。只需修改该代码以使框架在创建时居中即可。然后您可以修改此工作示例以添加适合您的实际应用程序的逻辑。

如果这没有帮助,请发布适当的 SSCCE这说明了问题,因为我们无法猜测您真正在做什么。

关于java - 在 jDesktopPane 的中心打开 jInternalFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35962277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com