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

📄 example0501_userinterface.java

📁 java example programed by my teacher
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import javax.swing.tree.*;
import javax.swing.table.*;

//主类,扩展了JFrame,实现了ActionListener接口,用于响应菜单项和工具条事件
public class Example0501_UserInterface extends JFrame implements ActionListener
{
	JMenuItem dialogs;
	
	JMenu midcoms;
	JMenuItem midcoms1;
	JMenuItem midcoms2;
	JMenuItem midcoms3;
	
	JMenuItem texts;
	JMenuItem buttons;
	JMenuItem comboxs;
	JMenuItem stddialogs;
	
	JMenu choosers;
	JMenuItem choosers1;
	JMenuItem choosers2;
	
	JMenu bars;
	JMenuItem bars1;
	JCheckBoxMenuItem bars2;
	
	JMenuItem adjusts;
	JMenuItem popmenus;
	JMenuItem tables;
	JMenuItem trees;
	JMenuItem timers;
	JMenuItem exits;
	
	JCheckBoxMenuItem check;
	
	JToolBar tool1;
	JToolBar tool2;
	
	Container con;

	JButton buttdialogs;
	JButton buttmidcoms1;
	JButton buttmidcoms2;
	JButton buttmidcoms3;
	JButton butttexts;
	JButton buttbuttons;
	JButton buttcomboxs;
	JButton buttstddialogs;
	JButton buttchoosers1;
	JButton buttchoosers2;
	JButton buttbars1;
	JButton buttbars2;
	JButton buttadjusts;
	JButton buttpopmenus;
	JButton butttables;
	JButton butttrees;
	JButton butttimers;
	JButton buttexits;
	
	JLabel info;
	
	boolean look=false;
	
	Example0501_UserInterface()
	{
		super("界面设计");

		Toolkit t=getToolkit();
		Image icon=t.getImage("java.gif");
		setIconImage(icon);
		
		setSize(500,500);
		
		info=new JLabel("此处显示有关的信息");
		info.setForeground(Color.blue);
		
		try
		{
			look=JOptionPane.YES_OPTION==JOptionPane.showConfirmDialog(null,"是否设置为系统外观","提示",JOptionPane.YES_NO_OPTION);
			if (look)
			{
				UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
			}
		}
		catch (Exception ee)
		{
			info.setText("Can't set the Look and Feel!");
		}
		
		con=getContentPane();
		con.add(info,"South");
		
		setMenu();
		
		addMouseMotionListener(new MouseMotionAdapter()
		{
			public void mouseMoved(MouseEvent e)
			{
				info.setText("鼠标位置:x="+e.getX()+", y="+e.getY());
			}
			public void mouseDragged(MouseEvent e)
			{
				info.setText("鼠标拖拽位置:x="+e.getX()+", y="+e.getY());
			}
		});
		
		addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
		
		setVisible(true);
		setExtendedState(JFrame.MAXIMIZED_BOTH);
	}
	
	public void setMenu()
	{
		JMenuBar menubar=new JMenuBar();
		
		JMenu functions=new JMenu("组件");
		
		dialogs=new JMenuItem("对话框");
		dialogs.addActionListener(this);
		dialogs.setActionCommand("dialog");
		
		midcoms=new JMenu("中间容器");
		midcoms1=new JMenuItem("面板、拆分窗格");
		midcoms1.addActionListener(this);
		midcoms2=new JMenuItem("标签窗格");
		midcoms2.addActionListener(this);
		midcoms3=new JMenuItem("内部窗格");
		midcoms3.addActionListener(this);
		midcoms.add(midcoms1);
		midcoms.add(midcoms2);
		midcoms.add(midcoms3);
		
		texts=new JMenuItem("标签、图标、文本框");
		texts.addActionListener(this);
		
		buttons=new JMenuItem("按钮");
		buttons.addActionListener(this);
		
		comboxs=new JMenuItem("列表框、组合框");
		comboxs.addActionListener(this);
		
		stddialogs=new JMenuItem("标准对话框");
		stddialogs.addActionListener(this);
		
		choosers=new JMenu("选择器");
		choosers1=new JMenuItem("文件选择器");
		choosers2=new JMenuItem("颜色选择器");
		choosers1.addActionListener(this);
		choosers2.addActionListener(this);
		choosers.add(choosers1);
		choosers.add(choosers2);
		
		bars=new JMenu("条组件");
		bars1=new JMenuItem("进度条");
		bars2=new JCheckBoxMenuItem("显示工具条");
		bars1.addActionListener(this);
		bars2.addActionListener(this);
		bars.add(bars1);
		bars.addSeparator();
		bars.add(bars2);
		
		adjusts=new JMenuItem("滑块、微调器");
		adjusts.addActionListener(this);
		
		popmenus=new JMenuItem("快捷菜单");
		popmenus.addActionListener(this);
		
		tables=new JMenuItem("表格");
		tables.addActionListener(this);
		
		trees=new JMenuItem("树");
		trees.addActionListener(this);
		
		timers=new JMenuItem("计时器");
		timers.addActionListener(this);
		
		exits=new JMenuItem("退出",'x');
		exits.addActionListener(this);
		exits.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.ALT_MASK));

		functions.add(dialogs);
		functions.add(midcoms);
		functions.add(texts);
		functions.add(buttons);
		functions.add(comboxs);
		functions.add(stddialogs);
		functions.add(choosers);
		functions.add(bars);
		functions.add(adjusts);
		functions.add(popmenus);
		functions.add(tables);
		functions.add(trees);
		functions.add(timers);
		functions.add(exits);
		
		JMenu checkradios=new JMenu("特殊菜单项");
		
		ImageIcon icon=new ImageIcon("java.gif");
		check=new JCheckBoxMenuItem("设为系统外观",icon,look);
		check.addActionListener(this);
		
		JRadioButtonMenuItem radio1=new JRadioButtonMenuItem("单选按钮菜单项1");
		JRadioButtonMenuItem radio2=new JRadioButtonMenuItem("单选按钮菜单项2");
		JRadioButtonMenuItem radio3=new JRadioButtonMenuItem("单选按钮菜单项3");
		check.setActionCommand("323");
		
		checkradios.add(check);
		checkradios.addSeparator();
		checkradios.add(radio1);
		checkradios.add(radio2);
		checkradios.add(radio3);
		ButtonGroup group=new ButtonGroup();
		group.add(radio1);
		group.add(radio2);
		group.add(radio3);
		

		menubar.add(functions);
		menubar.add(checkradios);
		setJMenuBar(menubar);
		
		setTools();
	}
	
	public void setTools()
	{
		tool1=new JToolBar();
		tool2=new JToolBar();
		
		buttdialogs=new JButton("对话框");
		buttdialogs.setActionCommand("dialog");
		buttdialogs.addActionListener(this);
		buttmidcoms1=new JButton("面板、拆分窗格");
		buttmidcoms1.addActionListener(this);
		buttmidcoms2=new JButton("标签窗格");
		buttmidcoms2.addActionListener(this);
		buttmidcoms3=new JButton("内部窗格");
		buttmidcoms3.addActionListener(this);
		butttexts=new JButton("文本框");
		butttexts.addActionListener(this);
		buttbuttons=new JButton("按钮");
		buttbuttons.addActionListener(this);
		buttcomboxs=new JButton("列表框、组合框");
		buttcomboxs.addActionListener(this);
		buttstddialogs=new JButton("标准对话框");
		buttstddialogs.addActionListener(this);
		buttchoosers1=new JButton("文件选择器");
		buttchoosers1.addActionListener(this);
		buttchoosers2=new JButton("颜色选择器");
		buttchoosers2.addActionListener(this);
		buttbars1=new JButton("进度条");
		buttbars1.addActionListener(this);
		buttbars2=new JButton("隐藏工具条");
		buttbars2.addActionListener(this);
		buttadjusts=new JButton("滑块、微调器");
		buttadjusts.addActionListener(this);
		buttpopmenus=new JButton("快捷菜单");
		buttpopmenus.addActionListener(this);
		butttables=new JButton("表格");
		butttables.addActionListener(this);
		butttrees=new JButton("树");
		butttrees.addActionListener(this);
		butttimers=new JButton("计时器");
		butttimers.addActionListener(this);
		buttexits=new JButton("退出");
		buttexits.addActionListener(this);
		buttexits.setToolTipText("Exit");
		
		tool1.add(buttdialogs);
		tool1.addSeparator();
		
		tool1.add(buttmidcoms1);
		tool1.add(buttmidcoms2);
		tool1.add(buttmidcoms3);
		tool1.addSeparator();
		
		tool1.add(butttexts);
		tool1.addSeparator();
		
		tool1.add(buttbuttons);
		tool1.addSeparator();
		
		tool1.add(buttcomboxs);
		tool1.addSeparator();
		
		tool1.add(buttstddialogs);
		tool1.addSeparator();
		
		tool2.add(buttchoosers1);
		tool2.add(buttchoosers2);
		tool2.addSeparator();
		
		tool2.add(buttbars1);
		tool2.add(buttbars2);
		tool2.addSeparator();
		
		tool2.add(buttadjusts);
		tool2.addSeparator();
		
		tool2.add(buttpopmenus);
		tool2.addSeparator();
		
		tool2.add(butttables);
		tool2.addSeparator();
		
		tool2.add(butttrees);
		tool2.addSeparator();
		
		tool2.add(butttimers);
		tool2.addSeparator();
		
		tool2.add(buttexits);
		
		tool1.setVisible(false);
		tool2.setVisible(false);
//		tool1.setFloatable(false); //设置是否可浮动
//		tool2.setFloatable(false); //设置是否可浮动
		tool1.setRollover(true);
		tool2.setRollover(true);

		JPanel p=new JPanel();
		p.setLayout(new GridLayout(2,1));
		p.add(tool1);
		p.add(tool2);
		con.add(p,"North");
	}
	
	public void actionPerformed(ActionEvent e)
	{
		Object target=e.getSource();
		
		if (target==check)
		{
			try
			{
				if (check.getState())
					UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
				else
					UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
			}
			catch (Exception ee)
			{
				info.setText("Can't set the Look and Feel!");
			}
		}
		
		if (e.getActionCommand()=="dialog")
		{
			MyJDialog dialog1=new MyJDialog(null,"模式对话框",true);
			MyJDialog dialog2=new MyJDialog(this,"非模式对话框",false);
		}
		
		if (target==midcoms1 || target==buttmidcoms1)
		{
			Midcoms1 midcom=new Midcoms1();
		}
		
		if (target==midcoms2 || target==buttmidcoms2)
		{
			Midcoms2 midcom=new Midcoms2();
		}
		
		if (target==midcoms3 || target==buttmidcoms3)
		{
			Midcoms3 midcom=new Midcoms3();
		}
		
		if (target==texts || target==butttexts)
		{
			Texts text=new Texts();
		}
		
		if (target==buttons || target==buttbuttons)
		{
			Buttons button=new Buttons();
		}
		
		if (target==comboxs || target==buttcomboxs)
		{
			Comboxs combox=new Comboxs();
		}
		
		if (target==stddialogs || target==buttstddialogs)
		{
			Stddialogs stddialog=new Stddialogs();
		}
		
		if (target==choosers1 || target==buttchoosers1)
		{
			Choosers1 chooser=new Choosers1();
		}
		
		if (target==choosers2 || target==buttchoosers2)
		{
			Choosers2 chooser=new Choosers2();
		}
		
		if (target==bars1 || target==buttbars1)
		{
			Bars1 bar=new Bars1();
		}
		
		if (target==bars2)
		{
			tool1.setVisible(bars2.getState());
			tool2.setVisible(bars2.getState());
		}
		
		if (target==buttbars2)
		{
			bars2.setState(!bars2.getState());
			tool1.setVisible(bars2.getState());
			tool2.setVisible(bars2.getState());
		}
		
		if (target==adjusts || target==buttadjusts)
		{
			Adjusts adjust=new Adjusts();
		}
		
		if (target==popmenus || target==buttpopmenus)
		{
			Popmenus popmenu=new Popmenus();
		}
		
		if (target==tables || target==butttables)
		{
			Tables table=new Tables();
		}
		
		if (target==trees || target==butttrees)
		{
			Trees tree=new Trees();
		}
		
		if (target==timers || target==butttimers)
		{
			Timers timer=new Timers();
		}
		
		if (target==exits || target==buttexits)
		{
			System.exit(0);
		}
	}
	
	public static void main(String[] args)
	{
		Example0501_UserInterface frm=new Example0501_UserInterface();
	}
}

class MyJDialog extends JDialog
{
	MyJDialog(JFrame frame,String title,boolean modal)
	{
		super(frame,title,modal);
		setSize(300,300);
		setVisible(true);
	}
}

class Midcoms1 extends JFrame
{
	class MyJPanel extends JPanel
	{
		MyJPanel()
		{
			setBackground(Color.BLUE);
		}
		public void paint(Graphics g)
		{
			super.paint(g);
			g.setColor(Color.YELLOW);
			g.drawString("面板",20,20);
		}
	}
	
	JTextArea texta;
	JButton butt;
	MyJPanel myp;
	JScrollPane scrollp;
	JSplitPane splitp1,splitp2;

	Midcoms1()
	{
		super("一个复合的窗口框架");
		
		texta=new JTextArea("文本区",10,20);
		scrollp=new JScrollPane(texta);
		butt=new JButton("按钮");
		myp=new MyJPanel();
		splitp1=new JSplitPane(JSplitPane.VERTICAL_SPLIT,true,butt,myp);
		splitp2=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitp1,scrollp);
		
		getContentPane().add(splitp2);
		
		setSize(300,300);
		setVisible(true);
	}
}

class Midcoms2 extends JFrame implements ChangeListener
{
	JTabbedPane tabp;
	JPanel p1;
	JPanel p2;
	JButton b1;
	JButton b2;
	JTextArea text=new JTextArea(20,20);
	
	Midcoms2()
	{
		tabp=new JTabbedPane();
		p1=new JPanel();
		p2=new JPanel();
		b1=new JButton("b1");
		b2=new JButton("b2");
		p1.add(b1);
		p1.add(b2);
		text=new JTextArea(20,20);
		p2.add(text);
		tabp.addTab("p1",p1);
		tabp.addTab("p2",p2);
//		tabp.setTabPlacement(JTabbedPane.BOTTOM); //设置标签显示的位置
		tabp.addChangeListener(this);
		Container con=getContentPane();
		con.add(tabp);
		setSize(600,600);
		setVisible(true);
		pack();
	}
	
	public void stateChanged(ChangeEvent e)
	{
		JTabbedPane tp=(JTabbedPane)e.getSource();
		if (tp.getSelectedComponent()==p1)
		{
			JOptionPane.showMessageDialog(this,"You selected p1");
		}
	}
}

class Midcoms3 extends JFrame
{
	JInternalFrame inf1;
	JInternalFrame inf2;
	JDesktopPane desk;
	
	Midcoms3()
	{
		inf1=new JInternalFrame("内部窗体1");
		inf1.setSize(200,200);
		inf1.setVisible(true);
		inf2=new JInternalFrame("内部窗体2");
		inf2.setSize(200,200);
		inf2.setVisible(true);

⌨️ 快捷键说明

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