Используя JInternalFrame и некоторые кнопки - PullRequest
1 голос
/ 30 апреля 2010

Можем ли мы использовать JInternalFame с кнопкой в ​​основном кадре? Кадр содержит JDesktopPane, конечно. Кнопка должна открыть JInternalFrame Как?

Ответы [ 2 ]

6 голосов
/ 30 апреля 2010

Я не знаю, как поставить JButton непосредственно на JDesktopPane, но вы можете использовать пункты меню для создания и выбора JInternalFrame. В этом примере каждый пункт меню использует Action, определенный в JInternalFrame, для выбора соответствующего кадра.

class MyFrame extends JInternalFrame {

    private Action action;

    MyFrame(JDesktopPane desktop, String name, int offset) {
        …
        action = new AbstractAction(name) {
            @Override
            public void actionPerformed(ActionEvent ae) {
                try {
                    MyFrame.this.setSelected(true);
                } catch (PropertyVetoException e) {
                    e.printStackTrace();
                }
            }
        };
    }

    public Action getAction() { return action; }
}

Приложение: как подсказывает @camickr, технически возможно поставить JButton непосредственно на JDesktopPane, но на практике это может оказаться затруднительным.

2 голосов
/ 30 апреля 2010

Я не совсем понимаю вопрос, поэтому сделаю несколько замечаний.

a) JInternalFrme похож на фрейм, в который вы можете добавить любой компонент, который вам нужен

b) JButton работает одинаково, независимо от того, добавляется ли он во внутреннюю рамку или рамку

Я предлагаю вам начать с учебника Swing для рабочих примеров. Вы можете начать с разделов «Как использовать внутренние рамки» и «Как использовать кнопки».

Если у вас все еще есть проблемы, опубликуйте SSCCE , в котором показано, что вы пробовали.

...