- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对显示在 GLCanvas 后面的 JMenuItem 有一些问题。
第一次单击 JMenuItem 时,它显示在 GLCanvas 前面,但是一旦单击 JSplit 拉伸(stretch)它,我就会遇到此问题。
我发现这个问题一般是在Swing组件与AWT组件一起使用时引起的,
您知道如何解决这个问题吗?
这是我的代码。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.jogamp.opengl.awt.GLCanvas;
public class MenuTest extends JFrame {
public MenuTest() {
this.addWindowListener (new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
});
}
public static void main(String args[]) {
int numberOfMenuItems = 5;
MenuTest f = new MenuTest();
Container cont = f.getContentPane();
cont.setLayout(new GridLayout(2,1));
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("testMenu");
for(int i=0; i<numberOfMenuItems; i++){
JMenu item = new JMenu("Item "+i);
item.add(new JMenuItem("item"));
menu.add(item);
}
menuBar.add(menu);
f.setJMenuBar(menuBar);
GLCanvas canvas = new GLCanvas();
canvas.setBackground(new Color(100, 50, 100));
JSplitPane split = new JSplitPane();
Container wrappingContainer = new Container();
wrappingContainer.setLayout(new BorderLayout());
wrappingContainer.setBackground(new Color(100,100,100));
wrappingContainer.add(canvas);
split.add(wrappingContainer, JSplitPane.RIGHT);
split.add(new JPanel(), JSplitPane.LEFT);
f
.getContentPane().add(split);
f.setSize(400,200);
f.show();
}
}
最佳答案
JPopupMenu
有一个方法:
setDefaultLightWeightPopupEnabled(false);
和JMenu
有一个方法:
getPopupMenu();
所以我猜你需要遍历所有菜单才能获取弹出菜单并使其成为一个重量级弹出菜单。
关于java - JMenuItem 在 GLCanvas 后面显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46710923/
我有一个简单的自定义 Canvas import com.jogamp.opengl.GL; import com.jogamp.opengl.GL2; import com.jogamp.openg
我希望在 3D OpenGL View 上绘制某种 HUD,但似乎在我的面板中完成的任何绘制都会被忽略,尽管它已经完成了。 这是一些准系统代码。 我的框架; public class MyFrame
我对显示在 GLCanvas 后面的 JMenuItem 有一些问题。 第一次单击 JMenuItem 时,它显示在 GLCanvas 前面,但是一旦单击 JSplit 拉伸(stretch)它,我就
我正在尝试将带有 OpenGL 内容的 GLCanvas 添加到 JPanel。 JPanel 位于 JTabbedPane 内。但是当 GLCanvas 在 JPanel 内部时,面板只是灰色的。当
单击 JMenu 选项导致我的 JOGL GLCanvas 闪烁。 JMenu 将 setDefaultLightWeightPopupEnabled 设置为 false。我不想使用 JGLPanel
我在带有 BorderLayout 的 jpanel 内有一个 glcanvas。 Canvas 的大小应取决于窗口的大小。初始大小通过设置 glCanvas.setSize(640, 480); 然
如何更改现有 GLCanvas 的 GLCapability? 我想这样做,以便我可以更改 FSAA(抗锯齿)样本,而无需重新创建 GLCanvas。 最佳答案 你不能。默认帧缓冲区的性质是在上下文创
我想让 JButton panel 占用 frame 水平空间的约 30%。 右侧的 glCanvas 占据了 frame 的其余空间。 我怎样才能实现这个布局? 目前: Main.java GLPr
我正在使用 GLCanvas 创建一个 wx.Frame。在某些平台上,将 Canvas 的 WX_GL_DEPTH_SIZE 属性设置为 32 效果很好。在另一个平台上,除非将深度大小减少到 16,
只是好奇,你将如何使用 openGL GLCanvas 的键绑定(bind)?我了解如何将它们与 JPanel(适用于 GLPanel)一起使用,但是否可以将其与 GLCanvas 一起使用?如果可能
所以当我开始掌握 java paint(Graphics g){} 方法我继续创建自己的渲染方法,但我必须了解缓冲区策略以及如何“获取”图形 所以现在我正在学习openGL,我必须掌握方法: @Ove
我正在使用 Swing 创建组件并使用 GLCanvas (com.jogamp.opengl.awt.GLCanvas) 创建我的窗口。 接下来就是问题了 在初始状态下,一切正常,但是当我拖动窗口调
我在尝试使用 Netbeans 6.9 编译 JOGL 程序时遇到了可怕的问题。我似乎无法找到有关如何执行此操作的最新解释。当我安装 NetBeans OpenGL 包时,我无法编译示例。我收到一个编
在以下程序(取决于 JOGL)中,当工具提示“适合”在 内时,JLabel 的工具提示隐藏在重量级 GLCanvas 后面。 GLCanvas. import java.awt.*; import j
我有一个带有 GLCanvas 的 JFrame。当我调用 JFrame 的 Component.printAll() 方法然后将 Graphics2D 对象打印到 png 文件(使用 Buffere
我正在尝试在 Eclipse 中将 JOGL 与 Scala 结合使用,但作为 JOGL/Scala 的新手,我遇到了一些依赖性错误,我无法弄清这些错误。谷歌搜索没有返回任何有用的信息。 我已经建立了
我从 here 下载了 jogl 2.0 ,文件 jogl-all.jar ,并运行了一个取自 here 的简单代码示例: import java.awt.event.KeyEvent; import
我是一名优秀的程序员,十分优秀!