Удалить меню апплета по умолчанию - PullRequest
0 голосов
/ 14 февраля 2012

Я работаю над JApplet, но я хочу пользовательское меню. Когда я вставляю это меню, я все равно получаю меню апплета и под своим собственным меню.

package multiformat;
import ui.*;
import javax.swing.*;

import java.awt.*;

public class CalculatorMVC extends JApplet{

        Command command;                // het model
        JTextField input;

        public void init()
        {
            resize(250,200);

            // Maak het model
             Calculator calc=new Calculator();

            // Maak de controller en geef hem het model
            command = new Command(calc);
            input = new JTextField();
            input.setHorizontalAlignment(input.RIGHT);

            JMenuBar menuBar = new JMenuBar();
            JMenu menu = new JMenu("Menu");
            menuBar.add(menu);
            JMenu help = new JMenu("Help");
            menuBar.add(help);
            // Create a menu item
            JMenuItem item = new JMenuItem("Label");
            //item.addActionListener(actionListener);
            menu.add(item);

    //      this.setJMenuBar(menuBar);
            getContentPane().add(input, BorderLayout.NORTH);
            getContentPane().add(command,BorderLayout.SOUTH);
    }
}

В этом случае оба меню отображаются. Мой собственный и по умолчанию из апплета. Как я могу удалить значение по умолчанию из апплета?

Ответы [ 2 ]

5 голосов
/ 15 февраля 2012

Небольшой хак для удаления строки меню программы просмотра апплетов:

  • Во время тестирования.
  • Запущено свободное плавание с использованием Java Web Start .
  • Перетаскивается со страницы в браузере. (На самом деле вам может потребоваться изменить его для этого, поскольку во время вызова init() апплет все еще встроен в страницу и отсутствует рамка просмотра апплета, из которой можно удалить строку меню.)

SneakyApplet

//<applet code='SneakyApplet' width=400 height=30></applet>
import java.awt.*;
import javax.swing.*;

public class SneakyApplet extends JApplet {

    public void init() {
        add(new JLabel("Look ma!  No Menu!"));
        Frame[] frames = Frame.getFrames();
        for (Frame frame : frames) {
            frame.setMenuBar(null);
            frame.pack();
        }
    }
}

Для компиляции и показа

prompt> javac SneakyApplet.java
prompt> appletviewer SneakyApplet.java
0 голосов
/ 14 февраля 2012

Апплеты не имеют меню по умолчанию.Вы имеете в виду menubar утилиты appletviewer?Нет способа удалить его, потому что фрейм не создан апплетом;таким же образом вы не можете удалить строку меню из веб-браузера, в котором в конечном итоге будет размещен апплет.

Редактировать Я был не прав, см. ответ Эндрю.

...