一、菜单栏
--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(); } }