gpt4 book ai didi

java - JMenuBar 导致内容 Pane 重新绘制不正确

转载 作者:行者123 更新时间:2023-11-30 11:49:42 25 4
gpt4 key购买 nike

我在使用 JMenuBar 时遇到了一个非常奇怪的问题,在两个 JMenus 之间导航会导致菜单所属的 JFrame 的 contentPane 重新绘制不正确。内容 Pane 仅在菜单项下拉并“弄脏”屏幕的地方显示正确的背景——其余部分完全是白色的。但是,这只会在浏览两个菜单之后发生,而不是立即发生。空的 contentPane 需要几秒钟的切换时间才能从普通背景颜色变为原来的颜色。

编辑 澄清一下,这是在使用 JDK 1.7.0 的 Windows 7 上。

为了更好地说明我的意思,这是启动后的窗口(手动调整大小): The window upon launch

然后在使用 JMenus 几秒钟后: The content pane is now incorrectly painted

下面是演示问题代码的 SSCCE

package com.test.workspace;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.SwingUtilities;

public class MenuBarTest extends JFrame {

/**
* Eclipse-generated SUID.
*/
private static final long serialVersionUID = 8836700685077107497L;

public MenuBarTest() {
JMenuBar menuBar = new JMenuBar();

JMenu testMenu = new JMenu("Test");
JMenuItem testItem = new JMenuItem("TestItem");

JMenu breakMenu = new JMenu("Break");
JMenuItem breakItem = new JMenuItem("BreakItem");

testMenu.add(testItem);

breakMenu.add(breakItem);

menuBar.add(testMenu);
menuBar.add(breakMenu);

this.setJMenuBar(menuBar);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MenuBarTest test = new MenuBarTest();
test.setDefaultCloseOperation(EXIT_ON_CLOSE);
test.pack();
test.setVisible(true);
}
});
}
}

最佳答案

它必须是特定于平台的东西。 GUI 在我的机器上显示良好:Ubuntu 11.10、Eclipse 3.7、Sun JDK 7。

关于java - JMenuBar 导致内容 Pane 重新绘制不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8280835/

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