Кнопка выхода Java из MenuItem / MenuBar и звукового проигрывателя - PullRequest
3 голосов
/ 03 января 2012

Хорошо, я написал этот кусочек кода как новичок в изучении Java из видео / школы, и у меня возникли некоторые вопросы.

1 => Почему файл >Кнопка выхода не работает и имеет маленькую стрелку, как будто у кого-то есть дети?Большая кнопка выхода работает с той же функцией.Я был вдохновлен отсюда: http://www.youtube.com/watch?src_vid=FB_wJpIdA8k&feature=iv&annotation_id=annotation_40248&v=dwLkDGm5EBc

2 => Как мне сделать эту кнопку меньше?Это больше, когда я изменяю его размер.

3 => Кто-нибудь знает простую библиотеку звукового проигрывателя?Итак, когда я нажимаю эту кнопку, чтобы воспроизвести звук?Я попробовал некоторые примеры в Интернете, такие как http://www.developer.com/java/other/article.php/2173111/Java-Sound-Playing-Back-Audio-Files-using-Java.htm и не знаю, как сделать это простым и использовать его везде, как SoundPlay (sound.au);

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class form4 
{
    public static void main(String[] args)
    {
        // Frame
        JFrame frame = new JFrame("Menu");
        frame.setSize(300,300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // Just create menubar
        JMenuBar menubar = new JMenuBar();
        frame.setJMenuBar(menubar);

        // Add an JMenu
        JMenu file = new JMenu("File");
        menubar.add(file);
        // Add an JMenuItem
        JMenuItem exit = new JMenu("Exit");
        file.add(exit);
        exit.addActionListener(new exitApp());

        // Add an JMenu
        JMenu help = new JMenu("Help");
        menubar.add(help);
        // Add an JMenuItem
        JMenuItem about = new JMenuItem("About");
        help.add(about);

        // Add an JButton
        JButton exitButton= new JButton("Exit!");
        frame.add(exitButton);
        exitButton.addActionListener(new exitApp());
        exitButton.setSize(40,40);

        frame.setVisible(true);
    }

    // Exit app
    static class exitApp implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            System.exit(0);
        }
    }
}

Спасибо!

Ответы [ 2 ]

11 голосов
/ 03 января 2012

Чтобы заставить работать меню выхода, используйте JMenuItem:

  JMenuItem exit = new JMenuItem("Exit");
  exit.addActionListener(new exitApp());
  file.add(exit);

Что касается вашего другого вопроса, как сделать кнопку "меньше", вам нужно понимать, что вы добавляете этот JButton вContentPane JFrame, и этот contentPane использует BorderLayout по умолчанию.Таким образом, добавление кнопки таким образом заставит ее полностью заполнить контейнер.Чтобы этого не случилось, вам нужно использовать другие макеты.Пожалуйста, прочитайте о том, как использовать Swing Layouts для деталей: Визуальное руководство для менеджеров по раскладке

3 голосов
/ 04 ноября 2013

Ниже показано, как я реализую это в своих приложениях, надеюсь, это поможет:

    menuBar = new JMenuBar();
    mainWindow.setJMenuBar(menuBar);

    mnFile = new JMenu("File");
    menuBar.add(mnFile);

    mntmClose = new JMenuItem("Close");
    mntmClose.setMnemonic(KeyEvent.VK_Q);
    mntmClose.setAccelerator(KeyStroke.getKeyStroke(
             KeyEvent.VK_Q, ActionEvent.CTRL_MASK));
    mntmClose.setToolTipText("Exit application");
    mntmClose.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            System.exit(0);
        }

    });
    mnFile.add(mntmClose);
...