Как получить JFrame в качестве аргумента функции в Java? - PullRequest
0 голосов
/ 25 сентября 2011

Я хотел создать другую функцию для создания меню для Java-приложения.

В функции меню frame.pack() для прослушивателей действий и frame.setJMenuBar требуются операторы.

Так как жепередать кадр как объект в подкласс в качестве аргумента?Я получаю ошибки в

imports..

public class sjava {
  public static void CreateAndRunGUI() {
    final JFrame frame = new JFrame("MyFrame");

    code..

    MakeMenuBar(frame);
    frame.pack();
    frame.setVisible(true);
  }

  public static void MakeMenuBar(Object frame) {
    JMenuBar menubar = new JMenuBar();
    menubar.setBackground(new Color(180,160,130));
    menubar.setOpaque(true);
    menubar.setPreferredSize(new Dimension(800,20));
    frame.setJMenuBar(menubar);
    JMenu menu1 = new JMenu("menu1");

    code..

    mitem1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent a) {
        code..
        SwingUtilities.updateComponentTreeUI(frame);
        frame.pack();
      }
    });
    code..
    mitem2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent a) {
        code..
        SwingUtilities.updateComponentTreeUI(frame);
        frame.pack();
      }
    });
}
public static void main(String[] args) {
  javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
      CreateAndRunGUI();
    }
  });
}

Можно ли использовать makemenubar функцию без использования фрейма в качестве аргумента?

1 Ответ

1 голос
/ 25 сентября 2011

Вам придется заменить

public static void MakeMenuBar(Object frame) {...}

на

public static void MakeMenuBar(JFrame frame) {...}

, иначе методы класса JFrame не будут доступны.

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