JMenu появляется за JTree, когда у JTree есть фокус? - PullRequest
2 голосов
/ 13 сентября 2011

JMenu работает правильно, когда я щелкаю по нему мышью.

before

Я щелкаю мышью, и она исчезает (нормально).Затем я дважды щелкаю по единственной записи в моем JTree.

Затем, когда я щелкаю по моему JMenu, это выглядит так.Это появляется позади JTree ???after

Когда я изменяю размер окна, оно возвращается в нормальное состояние.Пока 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);

1 Ответ

5 голосов
/ 13 сентября 2011

Вы смешиваете компоненты Swing и AWT.Не делайте этого, потому что это приводит к проблеме, с которой вы сталкиваетесь.Используйте JScrollpane вместо ScrollPane.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...