Swing 工具栏+选项卡+下拉框改变事件+输入框的焦点事件

一、菜单栏
    --JMenuBar
        **表示一个菜单栏
    --JMenu
        **表示菜单栏上的一个一级菜单
    --JMenuItem, JCheckBoxMenuItem, JRadioButtonMenuItem
        **表示一级菜单下的一个子菜单项,三者分别表示 普通的子菜单、带复选框的子菜单、带单选按钮的子菜单。

    【重要方法】
        ***setJMenuBar(menuBar)====》将菜单栏设置到窗口    
        ***addSeparator()====》添加一个子菜单分割线
    
二、工具栏
    --JToolBar  拖把
    【ImageIcon与Image之间的转换:】
    *-ImageIcon--->Image
    icon.getImage()

    *-Image--->ImageIcon
    new ImageIcon(ii)

    如何给按钮设置图片
    --ImageIcon ia = new ImageIcon("f:\\图片\\1.gif");

     jtb.setFloatable(false);//设置不可拖动

    // 给按钮设置提示信息
        b1.setToolTipText("ADC");

    如何在java中处理图片
    --Image ii = ia.getImage().getScaledInstance(30, 30, Image.SCALE_DEFAULT);
    --jba.setIcon(new ImageIcon(ii));

    【main方法里】设置窗体的风格与当前系统风格保持一致
    UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");


三、选项卡
    --JTabbedPane jtp = new JTabbedPane(JTabbedPane.BOTTOM,JTabbedPane.SCROLL_TAB_LAYOUT);

    ---JTabbedPane.BOTTOM:底部
    ---JTabbedPane.SCROLL_TAB_LAYOUT:是否滚动
    
    ---getTabCounte获取选项卡的数量


四、文本框的焦点事件
    --jtfa.addFocusListener(new FocusListener(){})


五、下拉框的改变事件
    --jcb.addItemListener(new ItemListener(){})

    --改变状态时先移除;removeAllItems之前项

1.菜单栏的使用

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;

/**
 * 菜单栏 JMenuBar
 * 
 * @author Zkingzz
 *
 */
public class JMenuBarDemo extends JFrame {

	// 实现菜单栏
	/**
	 * 创建菜单栏
	 */
	private JMenuBar jMenuBar = new JMenuBar();
	// 创建菜单栏下一级菜单选项
	private JMenu jma = new JMenu("文件(F)");
	private JMenu jmb = new JMenu("编辑(E)");
	private JMenu jmc = new JMenu("格式(O)");
	private JMenu jmd = new JMenu("查看(V)");
	private JMenu jme = new JMenu("帮助(H)");
	// 二级菜单
	private JMenuItem jmia = new JMenuItem("新建");
	private JMenuItem jmib = new JMenuItem("打开");
	private JMenuItem jmic = new JMenuItem("保存");
	private JMenuItem jmid = new JMenuItem("关闭");

	// 菜单栏上的单选按钮和复选按钮
	private JRadioButtonMenuItem jrbmia = new JRadioButtonMenuItem("男");
	private JRadioButtonMenuItem jrbmib = new JRadioButtonMenuItem("女");
	private ButtonGroup bg = new ButtonGroup();

	// 复选框
	private JCheckBoxMenuItem jcbmia = new JCheckBoxMenuItem("打游戏");
	private JCheckBoxMenuItem jcbmib = new JCheckBoxMenuItem("看电影");
	private JCheckBoxMenuItem jcbmic = new JCheckBoxMenuItem("玩足球");
	private JCheckBoxMenuItem jcbmid = new JCheckBoxMenuItem("造蝌蚪");

	public JMenuBarDemo() {
		this.setTitle("");
		this.setSize(500, 300);
		this.setDefaultCloseOperation(3);
		this.setLocationRelativeTo(null);
		// 设置窗体的图标
		this.setIconImage(new ImageIcon("images\\1.png").getImage());

		bg.add(jrbmia);
		bg.add(jrbmib);
		jmc.add(jrbmia);
		jmc.add(jrbmib);

		jmd.add(jcbmia);
		jmd.add(jcbmib);
		jmd.add(jcbmic);
		jmd.add(jcbmid);

		jma.add(jmia);
		jma.add(jmib);
		jma.add(jmic);
		jma.add(jmid);

		jMenuBar.add(jma);
		jMenuBar.add(jmb);
		jMenuBar.add(jmc);
		jMenuBar.add(jmd);
		jMenuBar.add(jme);
//		1
//		this.getContentPane().add(jMenuBar, "North");
		
		this.setJMenuBar(jMenuBar);
		
		this.setVisible(true);
	}

	public static void main(String[] args) {
		// 可以通过UIManager对象调用到系统的皮肤管理
		try {
			// UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		} catch (Exception e) {
			e.printStackTrace();
		}
		new JMenuBarDemo();
	}
}

2.选项卡

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

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

/**
 * 选项卡
 * 
 * @author Zkingzz
 *
 */
public class JTabbedPaneDemo extends JFrame {
	// 新建选项卡
	private JTabbedPane jtp = new JTabbedPane();
	// 选项卡添加内容 填充的面板是JPanel组件
	private JPanel jpa = new JPanel();

	private JButton jba = new JButton("新增选项卡");
	private JButton jbb = new JButton("移除选项卡");

	private JPanel jpb = new JPanel();
	private JPanel jpc = new JPanel();

	public JTabbedPaneDemo() {
		this.setTitle("");
		this.setSize(500, 300);
		this.setDefaultCloseOperation(3);
		this.setLocationRelativeTo(null);

		jpa.setBackground(Color.yellow);
		jpb.setBackground(Color.red);
		jpc.setBackground(Color.green);

		jpa.add(jba);
		jpa.add(jbb);

		// 调用方法 加选项卡
		jtp.add("糖页", jpa);
		jtp.add("邓康", jpb);
		jtp.add("胡精", jpc);

		this.getContentPane().add(jtp);

		jba.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// 添加选项卡
				jtp.add(JOptionPane.showInputDialog("输入名字"), new JPanel());
			}
		});
		
		jbb.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				//获取选项卡的长度
				int tabCount = jtp.getTabCount();
				jtp.remove(tabCount-1);
			}
		});
		
		
		
		

		this.setVisible(true);
	}

	public static void main(String[] args) {
		new JTabbedPaneDemo();
	}
}

3.工具栏

package com.zking.ui;

import java.awt.Color;
import java.awt.Image;

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JToolBar;

/**
 *工具栏  JToolBar
 * 
 * @author Zkingzz
 *
 */
public class JToolBarDemo extends JFrame {

	// 实现菜单栏
	/**
	 * 创建菜单栏
	 */
	private JMenuBar jMenuBar = new JMenuBar();
	// 创建菜单栏下一级菜单选项
	private JMenu jma = new JMenu("文件(F)");
	private JMenu jmb = new JMenu("编辑(E)");
	private JMenu jmc = new JMenu("格式(O)");
	private JMenu jmd = new JMenu("查看(V)");
	private JMenu jme = new JMenu("帮助(H)");
	
	
	//----------------------------------------------------
	//工具栏 JToolBar
	private JToolBar jtBar = new JToolBar();
	
	private JButton jba = new JButton("图标");
	private JButton jbb =new JButton(new ImageIcon(new ImageIcon("images\\1.png").getImage().getScaledInstance(40, 40, Image.SCALE_DEFAULT)));
	

	public JToolBarDemo() {
		this.setTitle("");
		this.setSize(500, 300);
		this.setDefaultCloseOperation(3);
		this.setLocationRelativeTo(null);
		// 设置窗体的图标
		this.setIconImage(new ImageIcon("images\\1.png").getImage());

		jba.setBackground(Color.YELLOW);
		jtBar.add(jba);
		jtBar.add(jbb);
		

		jMenuBar.add(jma);
		jMenuBar.add(jmb);
		jMenuBar.add(jmc);
		jMenuBar.add(jmd);
		jMenuBar.add(jme);
		
		this.setJMenuBar(jMenuBar);
		this.getContentPane().add(jtBar,"North");
		
		this.setVisible(true);
	}

	public static void main(String[] args) {
		// 可以通过UIManager对象调用到系统的皮肤管理
		try {
			// UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		} catch (Exception e) {
			e.printStackTrace();
		}
		new JToolBarDemo();
	}
}

4.输入框的焦点事件

import java.awt.Color;
import java.awt.Font;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

/**
 * 
 * 焦点事件

 * @author Zkingzz
 *
 */
public class RegisterUI extends JFrame {
	//中间组件
	private JPanel jpa = new JPanel(null);
	//基础组件
	private JLabel jla = new JLabel("用户注册",JLabel.CENTER);
	private JLabel jlb = new JLabel("账户");
	private JTextField jtfa = new JTextField(15);
	
	private JLabel jla_error = new JLabel();
	
	private JLabel jlc = new JLabel("密码");
	private JPasswordField jpfa = new  JPasswordField(15);
	private JButton jba = new JButton("注册");
	private JButton jbb = new JButton("退出");

	public RegisterUI() {
		this.setTitle("");
		this.setSize(500, 300);
		this.setDefaultCloseOperation(3);
		this.setLocationRelativeTo(null);
		this.setUndecorated(true);//去掉窗体边框
		
		jla.setBounds(0, 30, 500, 50);
		//显示jla组件的边框线
//		jla.setBorder(BorderFactory.createLineBorder(Color.red));
		//设置字体大小
		jla.setFont(new Font("华文新魏", Font.BOLD, 40));
		jpa.add(jla);
		
		jlb.setBounds(100, 100, 70, 40);
//		jlb.setBorder(BorderFactory.createLineBorder(Color.red));
		jlb.setFont(new Font("华文新魏", Font.BOLD, 25));
		jpa.add(jlb);
		
		jtfa.setBounds(170, 100, 180, 40);
		jpa.add(jtfa);
		
//		jla_error.setBorder(BorderFactory.createLineBorder(Color.red));
		jla_error.setBounds(350, 100, 140, 40);
		jpa.add(jla_error);
		
		
		jlc.setBounds(100, 160, 70, 40);
//		jlc.setBorder(BorderFactory.createLineBorder(Color.red));
		jlc.setFont(new Font("华文新魏", Font.BOLD, 25));
		jpa.add(jlc);
		
		jpfa.setBounds(170, 160, 180, 40);
		jpa.add(jpfa);
		
		
		jba.setBounds(120, 250, 100, 40);
		jpa.add(jba);
		
		jbb.setBounds(250, 250, 100, 40);
		jpa.add(jbb);
		
		
		
		//焦点事件
		jtfa.addFocusListener(new FocusListener() {
			
			@Override
			public void focusLost(FocusEvent e) {
//				System.out.println("失去焦点");
				//立刻获取当前输入框中的数据
				String str = jtfa.getText();
				System.out.println(str);
				
				if(str.trim().length() == 0) {
					jla_error.setText("用户名不能为空");
					return;//结束
				}else {
					
				}
				
				
				//将获取的str传输到数据库进行查找  通过dao方法进行传输
				//数据库中已有admin     不能注册admin
				if("admin".equals(str)) {
					jla_error.setText("该用户已被注册");
					jla_error.setForeground(Color.red);
				}else {
					jla_error.setText("* 正确");
					jla_error.setForeground(Color.blue);
				}
				
			}
			
			@Override
			public void focusGained(FocusEvent e) {
//				System.out.println("获取焦点");
			}
		});
		
	
		
		this.getContentPane().add(jpa);
		this.setVisible(true);
	}

	public static void main(String[] args) {
		new RegisterUI();
	}
}

5.下拉框改变事件

import java.awt.Color;
import java.awt.Font;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

/**
 * 
 * 
 * @author Zkingzz
 *
 */
public class SanJiLianDongUI extends JFrame {
	// 中间组件
	private JPanel jpa = new JPanel();

	private JComboBox jcba = new JComboBox();
	private JComboBox jcbb = new JComboBox();

	public SanJiLianDongUI() {
		this.setTitle("");
		this.setSize(500, 300);
		this.setDefaultCloseOperation(3);
		this.setLocationRelativeTo(null);
		this.setUndecorated(true);// 去掉窗体边框
		jcba.addItem("请选择");
		jcba.addItem("湖南省");
		jcba.addItem("湖北省");
		jcba.addItem("河南省");
		jcba.addItem("河北省");
		jcba.addItem("陕西省");

		jpa.add(jcba);
		jpa.add(jcbb);

		// 下拉框改变事件
		jcba.addItemListener(new ItemListener() {

			@Override
			public void itemStateChanged(ItemEvent e) {
				jcbb.removeAllItems();//清空上一次所有的数据
				String pro = jcba.getSelectedItem().toString();
				if ("湖南省".equals(pro)) {
					jcbb.addItem("长沙市");
					jcbb.addItem("湘潭市");
					jcbb.addItem("邵阳市");
					jcbb.addItem("衡阳市");
					jcbb.addItem("益阳市");
				}

			}
		});

		this.getContentPane().add(jpa);
		this.setVisible(true);
	}

	public static void main(String[] args) {
		new SanJiLianDongUI();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值