Работа с JApplet с меню - PullRequest
       2

Работа с JApplet с меню

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

У меня проблемы с моим кодом.Подменю для меню (Музыка) должно быть переключателем.

Вот мой первый код:

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

public class AMBAT_FLAB1 extends JApplet implements ActionListener{

JMenuBar mainBar = new JMenuBar();
JMenu menu1 = new JMenu("File");
JMenu menu2 = new JMenu("Format");
JMenu menu3 = new JMenu("Background");
//for file
JMenuItem open = new JMenuItem("Open");
JMenuItem save = new JMenuItem("Save");
JMenuItem reset = new JMenuItem("Reset");
//for format
JMenuItem setFont = new JMenuItem("Set Font");
JMenuItem setColor = new JMenuItem("Set Color");
//for background
JMenuItem image = new JMenuItem("Images");
JMenuItem music = new JMenuItem("Music");
//submenu of music
JRadioButtonMenuItem play = new JRadioButtonMenuItem("Play");
JRadioButtonMenuItem loop = new JRadioButtonMenuItem("Loop");
JRadioButtonMenuItem stop = new JRadioButtonMenuItem("Stop");

ButtonGroup group = new ButtonGroup();

//file chooser
//JFileChooser fileChooser = new JFileChooser();
//fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

//text area
JTextArea myArea = new JTextArea(50, 50);
JScrollPane scrollingArea = new JScrollPane(myArea);

Container con = getContentPane();

public void init(){
    setJMenuBar(mainBar);
    mainBar.add(menu1);
    mainBar.add(menu2);
    mainBar.add(menu3);
    menu1.add(open);
    menu1.add(save);
    menu1.add(reset);
    menu2.add(setFont);
    menu2.add(setColor);
    menu3.add(image);
    menu3.add(music);
    music.group.add(play);
    //group.add(loop);
    //music.add(stop);

    open.addActionListener(this);
    save.addActionListener(this);
    reset.addActionListener(this);
    setFont.addActionListener(this);
    setColor.addActionListener(this);
    image.addActionListener(this);
    music.addActionListener(this);
}

public void actionPerformed(ActionEvent e){

}
}

Когда я пытаюсь его запустить, меню Музыка непоявляются.Он меняется на Play (радио-кнопка).Группа кнопок помогает?Когда я пытался использовать группу кнопок, ничего не происходило.

Ответы [ 2 ]

2 голосов
/ 26 сентября 2011

Как это?

AMBAT_FLAB1 on screen

/* <applet code='AMBAT_FLAB1' width=220 height=100></applet> */
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class AMBAT_FLAB1 extends JApplet implements ActionListener{

    JMenuBar mainBar = new JMenuBar();
    JMenu menu1 = new JMenu("File");
    JMenu menu2 = new JMenu("Format");
    JMenu menu3 = new JMenu("Background");
    //for file
    JMenuItem open = new JMenuItem("Open");
    JMenuItem save = new JMenuItem("Save");
    JMenuItem reset = new JMenuItem("Reset");
    //for format
    JMenuItem setFont = new JMenuItem("Set Font");
    JMenuItem setColor = new JMenuItem("Set Color");
    //for background
    JMenuItem image = new JMenuItem("Images");
    JMenu music = new JMenu("Music");
    //submenu of music
    JRadioButtonMenuItem play = new JRadioButtonMenuItem("Play");
    JRadioButtonMenuItem loop = new JRadioButtonMenuItem("Loop");
    JRadioButtonMenuItem stop = new JRadioButtonMenuItem("Stop");

    ButtonGroup group = new ButtonGroup();

    //file chooser
    //JFileChooser fileChooser = new JFileChooser();
    //fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

    //text area
    JTextArea myArea = new JTextArea(50, 50);
    JScrollPane scrollingArea = new JScrollPane(myArea);

    Container con = getContentPane();

    public void init(){
        setJMenuBar(mainBar);
        mainBar.add(menu1);
        mainBar.add(menu2);
        mainBar.add(menu3);
        menu1.add(open);
        menu1.add(save);
        menu1.add(reset);
        menu2.add(setFont);
        menu2.add(setColor);
        menu3.add(image);
        menu3.add(music);
        group.add(play);
        group.add(loop);
        group.add(stop);
        music.add(play);
        music.add(loop);
        music.add(stop);
        //music.add(stop);

        open.addActionListener(this);
        save.addActionListener(this);
        reset.addActionListener(this);
        setFont.addActionListener(this);
        setColor.addActionListener(this);
        image.addActionListener(this);
        music.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e){

    }
}

Ошибки в коде были в основном:

  • Если у Музыки были дети, это должен был быть JMenu, а не JMenuItem
  • A ButtonGroup - это логическая группа (например, чтобы сделать переключатели из группы кнопок), это , а не контейнер. Поэтому помимо добавления кнопок в группу, необходимо добавить их в Music JMenu.
0 голосов
/ 26 сентября 2011

У вас есть синтаксическая ошибка в вашем исходном коде.Попробуйте закомментировать строку, которая терпит неудачу и перекомпилировать.Это должно дать вам немного больше информации в вашем интерфейсе (GUI).

...