- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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/
我一直在设计一个基于 Swing 的桌面 RPG 程序,以方便使用 GUI 控制元素进行基于文本的角色扮演。 为了实现这一点,每个正在运行的客户端都会获得一个包含所有重要 JFrame 的主桌面(托管
我想在按钮触发器中隐藏我的JDesktopPane。但这不会隐藏自己。我创建了一个隐藏框架的静态 void 方法,并在 actionPerformed 中调用它。我需要运行另一个 EDT 来隐藏我的框
我想将 JDesktopPane 设置为透明,并允许我单击下面的内容(例如桌面图标等)。内部框架应保持不透明,并且能够像当前一样在屏幕周围重新定位。有什么想法吗? package test1;
由于我们在软件中使用 JDesktopPane 和 JInternalFrames ,我想知道我们是否可以将快捷图标(特定框架)放置在桌面 Pane 内(类似于Windows 桌面快捷方式)。我搜索了
我正在为 JDesktopPane 使用自制的 DesktopPaneUI,我已经为该类编写了正确的方法,但我遇到了麻烦。当我调整 JDesktopPane 大小时,背景图像不会随框架调整大小。图像似
我是一名初学者,正在创建 MDI 格式的 Java 桌面应用程序,因此使用了 JDesktopPane 和内部框架。我主要为此使用 NetBeans 拖放。现在我需要设计一个可以滚动的属性的页面。我需
制作全屏 mdi 应用程序是一个坏主意吗?还有其他人尝试过这个吗?目前正致力于重新设计触摸屏终端上使用的应用程序。空间至关重要,我相信能够最大化、调整应用程序窗口大小等确实会使终端更加强大。有人有这方
我一直在努力驯服JDesktopPane与可调整大小的 GUI 和滚动 Pane 一起很好地工作,但这样做有一些麻烦。看起来除非拖动模式是轮廓,桌面 Pane 不会按预期调整大小(当内部框架被拖动到桌
我们有一个包含两个 JFrames 和两个 JDesktopPanes 的应用程序。我们需要将内部框架从一个框架移动到另一个框架。 我们遇到的问题是,在我们将内部框架从第一个窗口移动到第二个窗口后,当
我有一个 JDesktopPane 并希望以网格样式显示 JInternalFrames 而无需覆盖框架。框架的尺寸会有所不同,因此应动态分配它们的位置。我可以存储最后放置的框架的坐标,但可以移动、最
我想为 javax.swing.JDesktopPane 添加滚动功能。但是包装在 javax.swing.JScrollPane 中不会产生所需的行为。 Searching the web表明这个问
我在使用 Swing 设计 MDI 应用程序时遇到了一些麻烦。 我在实现 JDesktopPane 和 JInternalFrames 时没有遇到任何问题,我的问题会更具体一点。这是我的基本容器框架一
我正在编写一个程序,试图模拟一个物种的进化,它有一个如下所示的窗口: 最初右下角的空白区域是一个面板,它的目的是绘制标本、位置和行进路径的视觉表示(并不重要)。但是,您将能够打开某种窗口,允许您创建/
我有主员工表单,我想在我的主表单上显示它们。该主窗体是MDI容器,所以我只想知道如何显示主雇员窗体。 这是JDesktopPane创建对象代码: public class MainForm exten
我想在两个 JPanel 之间画线,但线没有出现在 LayeredPane 上。 这就是我所做的,请仔细阅读它,可编译。请尝试并更正此代码。我尝试过以这种方式在内部框架上绘制线条,但它不适用于 JPa
我使用 JDesktopPane 并创建多个 JInternalFrame 对象。当我最小化所有框架并最大化其中任何一个框架时,打开的框架会覆盖所有最小化的框架。 如何使所有最小化的框架可见? 最佳答
所以我在JFrame上有一个desktopPane,在desktopPane上是一个JInternalFrame。现在,我将internalFrame的位置设置为desktopPane的中心,但是当我
我想创建我所读取的文件的预览,其中包含指定的行数。我的代码工作正常,问题是如果我选择其他行数,JDesktopPane 不会刷新并且会覆盖前面的行。 我的代码如下所示: previewButton.a
我将项目的 LAF 设置为系统默认外观。现在我试图将 JDesktopPane 放入我的一个面板中,但我希望我所有的内部框架都使用 java 默认 LAF。有没有办法在不改变整个项目的LAF的情况下改
我试图将 JPanel 添加到我的 JFrame,然后将 JFrame 的 contentPane 设置为 JDesktopPane,以便我可以创建新的 JInternalFrames 并将它们添加到
我是一名优秀的程序员,十分优秀!