⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menus.java

📁 简单的Java Gui,用Java编辑器真接打开
💻 JAVA
字号:
//: c13:Menus.java
// Submenus, checkbox menu items, swapping menus,
// mnemonics (shortcuts) and action commands.
// <applet code=Menus width=300
// height=100> </applet>

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

public class Menus extends JApplet
{
	String[] flavors = {"Chocolate", "Strawberry", 
		"Vanilla Fudge Swirl", "Mint Chip", 
		"Mocha Almond Fudge", "Rum Raisin", 
		"Praline Cream", "Mud Pie"};
	JTextField t = new JTextField("No flavor", 30);
	JMenuBar mb1 = new JMenuBar();
	JMenu f = new JMenu("File");
	JMenu m = new JMenu("Flavors");
	JMenu s = new JMenu("Safety");
		
	// Alternative approach:
	JCheckBoxMenuItem[] safety = 
	{
		new JCheckBoxMenuItem("Guard"),
		new JCheckBoxMenuItem("Hide")
	};
	
	// A second menu bar to swap to:
	JMenuBar mb2 = new JMenuBar();
	JMenu fooBar = new JMenu("fooBar");
	JMenuItem[] other =
	{
		// Adding a menu shortcut (mnemonic) is very
		// simple, but only JMenuItem can have them
		// in their constructors;
		new JMenuItem("Foo", KeyEvent.VK_F),
		new JMenuItem("Bar", KeyEvent.VK_A),
		
		// No shortcut:
		new JMenuItem("Bar")	
	};
	
	JButton b = new JButton("Swap Menus");
	
	class BL implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			JMenuBar m = getJMenuBar();
			setJMenuBar(m == mb1? mb2:mb1);
			validate(); // Refresh the frame
		}	
	}
	
	class ML implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			JMenuItem target = (JMenuItem)e.getSource();
			String actionCommand = 
				target.getActionCommand();
			
			if (actionCommand.equals("Open0"))
			{
				String s = t.getText();
				boolean chosen = false;
				
				for (int i=0; i<flavors.length; i++)
				{
					if (s.equals(flavors[i]))
						chosen = true;
				}
				
				if (!chosen)
				{
					t.setText("Choose a flavor first!");	
				}
				else
				{
					t.setText("Opening" + s + ". Mmm, mm!");
				}
			}
		}
	}
	
	class FL implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			JMenuItem target = (JMenuItem)e.getSource();
			t.setText(target.getText());
		}
	}
	
	// Alternatively, you can create a different
	// class for each different MenuItem.Then you
	// Don't have to figure out which one it is:
	class FooL implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			t.setText("Foo selected");
		}
	}
	
	class BarL implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			t.setText("Bar selected");
		}
	}
	
	class BazL implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			t.setText("Baz selected");
		}
	}
	
	class CMIL implements ItemListener
	{
		public void itemStateChanged(ItemEvent e)
		{
			JCheckBoxMenuItem target =
				(JCheckBoxMenuItem)e.getSource();
			String actionCommand =
				target.getActionCommand();
			
			if (actionCommand.equals("Guard"))
			{
				t.setText("Guard the Ice Cream! " +
					"Guarding is " + target.getState());	
			}
			else
			{
				t.setText("Hide the Ice Cream!" + 
					"Is it cold?" + target.getState());
			}
		}
	}
	
	public void init()
	{
		ML ml = new ML();
		CMIL cmil = new CMIL();
		safety[0].setActionCommand("Guard");
		safety[0].setMnemonic(KeyEvent.VK_G);
		safety[0].addItemListener(cmil);
		safety[1].setActionCommand("Hide");
		safety[0].setMnemonic(KeyEvent.VK_H);
		safety[1].addItemListener(cmil);
		other[0].addActionListener(new FooL());
		other[1].addActionListener(new BarL());
		other[2].addActionListener(new BazL());
		
		FL fl = new FL();
		
		for (int i=0; i<flavors.length; i++)
		{
			JMenuItem mi = new JMenuItem(flavors[i]);
			mi.addActionListener(fl);
			m.add(mi);
			
			// Add separators at intervals;
			if ((i+1) %3 == 0)
			{
				m.addSeparator();
			}
		}
		
		s.setMnemonic(KeyEvent.VK_A);
		f.add(s);
		f.setMnemonic(KeyEvent.VK_F);
			
		for (int i=0; i<safety.length; i++)
		{			
			file[i].addActionListener(fl);
			f.add(file[i]);				
		}
			
		mb1.add(f);
		mb1.add(m);
		setJMenuBar(mb1);
		t.setEditable(false);
		Container cp = getContentPane();
		cp.add(t, BorderLayout.CENTER);
			
		// Set up the system for swapping menus:
		b.addActionListener(new BL());
		b.setMnemonic(KeyEvent.VK_S);
		cp.add(b, BorderLayout.NORTH);
			
		for (int i=0; i<other.length; i++)
		{
			fooBar.add(other[i]);
		}
			
		fooBar.setMnemonic(KeyEvent.VK_B);
		mb2.add(fooBar);
	}
	
	public static void main(String[] args)
	{
		Menus applet = new Menus();
		JFrame frame = new JFrame("Menus");
		frame.getContentPane().add(applet);
		frame.setSize(200, 75);
		applet.init();
		applet.start();
		frame.setVisible(true);
	}
}///:~

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -