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

📄 mymenu.java

📁 一个关于java的菜单与对话框的程序
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class myMenu extends JFrame //implements ActionListener,TextListener,FocusListener
{
	private static int flag=0,flag_close=0;
	public static void main(String[] args) 
	{
		final JFrame jf=new JFrame("菜单演示程序");
		final JMenuBar jmb=new JMenuBar();
		final JMenu jm=new JMenu("菜单");
		final JMenuItem jmi=new JMenuItem("退出");
		final JButton jb=new JButton("离开");
		final String str="当用户修改了文本框中的内容并试图离开这个文本框时\n程序弹出有模式对话框请用户确认修改\n如果用户只是进入并退出文本框而没有修改其中的内容\n则不会弹出对话框";
		final JTextArea jta=new JTextArea(str,5,20);
		final JTextField jtf=new JTextField("fjsioa",20);
		final TextArea ta=new TextArea(str,5,30);
		JPanel p1=new JPanel();
		JPanel p2=new JPanel();
		final JDialog jd=new JDialog(jf,"确认退出",false);
		Container content=jf.getContentPane();
		Container content2=jd.getContentPane();
		final JButton jb1=new JButton("是");
		final JButton jb2=new JButton("否");
		JLabel jl=new JLabel("您的文本已被修改是否保留并退出?");
		//int flag=0;
		p2.add("West",jb1);
		p2.add("East",jb2);
		content2.add(jl,BorderLayout.NORTH);
		content2.add(p2,BorderLayout.SOUTH);
		jf.setBounds(200,200,200,200);
		jd.setBounds(250,250,100,100); 
		jf.setSize(300,300);
        jmi.setAccelerator(KeyStroke.getKeyStroke('E',Event.CTRL_MASK));
        jmb.add(jm);
		jf.setJMenuBar(jmb);
		jm.add(jmi);
		jmi.addActionListener(new CloseListener());
		//jta.addTextListener(new myMenu());
		p1.add(jb);
		//p1.add(jta);
		//p1.add(jtf);
		p1.add(ta);
		content.add(p1);
		jf.pack();
		jd.pack();
		class ButtonListener implements ActionListener
        {
	        public void actionPerformed(ActionEvent e)
	        {
				if(e.getActionCommand().equals(jb.getText()))
				{
					if(flag==1&&flag_close==0)
		                jd.show();
						else
							//if(flag_close==1)
					System.exit(0);
				}
				if(e.getActionCommand().equals(jb1.getText()))
				{
					flag_close=1;
					ta.setText(ta.getText());
					jd.setVisible(false);
					
					//System.exit(0);
				}
	            if(e.getActionCommand().equals(jb2.getText()))
				{
					flag_close=1;
					ta.setText(str);
					jd.setVisible(false);
					//flag=0;

					//System.exit(0);
				}
			}
         }
	    jb.addActionListener(new ButtonListener());
		jb1.addActionListener(new ButtonListener());
		jb2.addActionListener(new ButtonListener());
		class textAreaListener implements TextListener
		{
			public void textValueChanged(TextEvent e)
			{
                 flag=1;
			}
		}
		ta.addTextListener(new textAreaListener());
		class focusListener implements FocusListener
		{
			public void focusGained(FocusEvent e)
			{}
			public void focusLost(FocusEvent e)
			{
				if(flag==1)
					jd.show();
			}
		}/**/
		ta.addFocusListener(new focusListener());
		jf.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent we)
			{
				System.exit(0);
			}
		});
        
		//jf.setVisible(true);
		jf.show();
		
//		if(flagL==1)
		//jd.show();
		//myMenu my=new myMenu();my.f.setVisible(true);my.f.show();
		//my.go();
	}
	
}
/*class actionListener implement ActionListener
{
	public void actionPerformed(ActionEvent e)
	{
		fla
	}
}*/
class CloseListener implements ActionListener
{
	public void actionPerformed(ActionEvent event)
	{
		System.exit(0);
	}
}

⌨️ 快捷键说明

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