当JTree关注焦点时,JMenu出现在JTree背后?

Her*_*ton 2 java swing

当我单击鼠标时JMenu正常工作.

之前

我点击鼠标离开它(正常).然后我双击我的JTree中的唯一条目.

然后,当我点击我的JMenu时,它看起来像这样.它出现在JTree背后??? 后

当我调整窗口大小时,它恢复正常.直到JTree再次关注.

这是我的代码看起来像,我是一个jframe的子类,这个代码在构造函数中

Container cp = getContentPane();

//1. menu
JMenuBar menu = new JMenuBar();
//...

cp.add(menu, BorderLayout.NORTH);

//2. split pane
JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
//...
{
    //3a. scrollpane (left)
    ScrollPane treeView = new ScrollPane();
    treeView.setMinimumSize(new Dimension(0,0));
    sp.add(treeView, JSplitPane.LEFT);
    {
        //3ai. treeview
        tree = new ObjectTree();
        treeView.add(tree);
    }

    //3b. scrollpane (right)
    ScrollPane tabView = new ScrollPane();
    tabView.setMinimumSize(new Dimension(0,0));
    sp.add(tabView, JSplitPane.RIGHT);
    {
       //3bi tabview
       ObjectTabPane view = new ObjectTabPane();
       tabView.add(view);
    }
}

cp.add(sp, BorderLayout.CENTER);
this.setSize(700, 500);
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 5

你正在混合Swing和AWT组件.不要这样做,因为它会导致你面临的问题.使用JScrollpane而不是ScrollPane.