2012-01-03 64 views
3

好吧,我写了这个代码片作为一个初学者在java学习视频/学校,我有一些问题。从菜单项/菜单栏和声音播放器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); 
     } 
    } 
} 

谢谢!

+3

参见[使用菜单](HTTP:// docs.oracle.com/javase/tutorial/uiswing/components/menu.html)有关子菜单。 – trashgod 2012-01-03 03:03:27

+2

另请参阅[初始线程](http://download.oracle.com/javase/tutorial/uiswing/concurrency/initial.html)。 – trashgod 2012-01-03 03:04:18

回答

11

要退出菜单的工作,使用的JMenuItem:

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

关于你提到的其他问题,如何使按钮“小”,你要明白,你要添加这个JButton的一个Jframe的contentPane,并且contentPane默认使用BorderLayout。因此,以这种方式添加按钮将使其完全填满容器。为防止这种情况发生,您需要使用其他布局。请有关如何使用Swing布局的详细信息,阅读起来:A Visual Guide to the Layout Managers

+0

工程,这是我的错误,我必须更仔细地看,因为我是新来的Java。谢谢:) – Master345 2012-01-03 03:19:01

+0

无论如何,有没有一个可视化的按钮界面,就像在C#中的java?我目前使用Eclipse ... – Master345 2012-01-03 03:20:26

+0

@RowMinds:解释“可视化按钮界面”,因为这对我来说没有任何意义。如果你问是否有一个类似于MS Visual Studio的可视化GUI设计器,那么是的,但是我强烈建议你不要使用它,直到你学习Swing的雏形。 – 2012-01-03 04:51:02

3

下面是我如何在我的应用程序中实现它,希望它有助于:

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); 
+0

很好的答案,你把这个放在哪里? – Master345 2013-11-12 18:27:40