JavaSE18—Swing高级控件(上)
1. 为窗体添加菜单
1) 创建菜单栏
在窗体中添加菜单,首先要实现在窗体中添加菜单栏。在Java中使用JMenuBar类创建菜单栏,该类在javax.swing包中。菜单创建完成后,可以使用JFrame类的setJMenuBar()方法将菜单栏添加到窗体上。
JMenuBar类有个不惨的构造方法
JMenuBar mb = new JMenuBar();
创建完成菜单栏对象后,需要将该对象添加到窗体中。
setJMenuBar(mb);
创建完成菜单栏对象后,并不包含任何菜单,要实现在菜单栏中添加惨淡对象,需要通过JMenuBar实例的add()方法实现。
2) 创建菜单
在Java中使用 JMenu类来创建菜单,该类在javax.swing包中,菜单创建完后通过JMenuBar类的add方法将菜单添加到菜单栏上
例如
JmenuBar mb = new JMenuBar();
setJMenuBar(mb);
JMenu file = new JMenu(“文件”);
JMenu edit = new JMenu(“编辑”);
mb.add(file);
mb.add(edit);
3) 创建菜单项
在Java中使用JMenuItem类创建菜单项,菜单项创建完以后,可以使用JMenu类的add()方法将菜单项添加到菜单上。
为菜单添加动作时间监听器可以使用addActionListener(ActionListener actionListener)方法来实现
实例:创建窗体对象,在窗体中添加“文件”菜单,并在菜单中添加“打开”与“退出”两个菜单项,在“打开”菜单项中添加图片文件,在“退出”菜单项中添加单击事件。
在Java中使用JPopupMenu类表示弹出式菜单,弹出式菜单是一种特殊形式的菜单,不固定在窗体中的某个位置
实例:创建窗体是现在窗体中添加弹出式菜单
1) 创建工具栏
Java中JToolBar类用于创建工具栏,在窗体中工具栏紧挨着菜单栏,在窗体的顶部位置。
与菜单栏相同,JToolBar类也是控件的容器,可在工具栏中添加菜单,组合框等。
构造方法:
JToolBar toolbar = new JToolBar();
JToolBar toolbar = new JToolBar(“文件操作”);
实例:
JFileChooser类为用户选择文件提供了一种简单的机制。通过该类创建的对象是一个文件选择对话框,可以方便地选择文件。
JFileChooser类还提供了两个比较重要的字段APPROVE_OPTION和CANCEL_OPTION,分别用于判断用户在文件选择对话框中是淡季了“打开”还是“取消”。
JFileChooser实例通过showOpenDialog()方式显示对话框,该方法返回int,用来判断用户是否选择了文件或路径。
使用文件过滤器
JFileChooser类提供了setFileFilter(FileFilter filter)方法,通过该方法可以为文件选择对话框设置过滤器,使其只显示指定类型的文件。
实例:创建窗体,为窗体添加文件菜单,在文件菜单中添加打开菜单项,实现当前用户菜单打开菜单项后,弹出打开文件对话框。
1. 为窗体添加菜单
1) 创建菜单栏
在窗体中添加菜单,首先要实现在窗体中添加菜单栏。在Java中使用JMenuBar类创建菜单栏,该类在javax.swing包中。菜单创建完成后,可以使用JFrame类的setJMenuBar()方法将菜单栏添加到窗体上。
JMenuBar类有个不惨的构造方法
JMenuBar mb = new JMenuBar();
创建完成菜单栏对象后,需要将该对象添加到窗体中。
setJMenuBar(mb);
创建完成菜单栏对象后,并不包含任何菜单,要实现在菜单栏中添加惨淡对象,需要通过JMenuBar实例的add()方法实现。
2) 创建菜单
在Java中使用 JMenu类来创建菜单,该类在javax.swing包中,菜单创建完后通过JMenuBar类的add方法将菜单添加到菜单栏上
例如
JmenuBar mb = new JMenuBar();
setJMenuBar(mb);
JMenu file = new JMenu(“文件”);
JMenu edit = new JMenu(“编辑”);
mb.add(file);
mb.add(edit);
3) 创建菜单项
在Java中使用JMenuItem类创建菜单项,菜单项创建完以后,可以使用JMenu类的add()方法将菜单项添加到菜单上。
为菜单添加动作时间监听器可以使用addActionListener(ActionListener actionListener)方法来实现
实例:创建窗体对象,在窗体中添加“文件”菜单,并在菜单中添加“打开”与“退出”两个菜单项,在“打开”菜单项中添加图片文件,在“退出”菜单项中添加单击事件。
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; public class MenuDemo extends JFrame{ public MenuDemo(){ super(); //设置窗体基本信息 setTitle("创建菜单"); setBounds(100,100,240,160); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //创建菜单栏 JMenuBar menuBar = new JMenuBar(); //创建菜单 JMenu mn_file = new JMenu("文件"); //获取图片 URL url = getClass().getResource("file.png"); ImageIcon icon = new ImageIcon(url); //为菜单添加菜单项 JMenuItem mi_open = new JMenuItem("文件",icon); JMenuItem mi_exit = new JMenuItem("退出"); //添加菜单事件 mi_exit.addActionListener(new ActionListener(){ public void actionPerformed(final ActionEvent arg0){ System.exit(0); } }); //将菜单项添加到菜单上 mn_file.add(mi_open); mn_file.addSeparator(); mn_file.add(mi_exit); //将菜单添加到菜单栏上 menuBar.add(mn_file); //将菜单栏添加到窗体上 setJMenuBar(menuBar); setVisible(true); } public static void main(String[] args){ new MenuDemo(); } }4) 创建弹出式菜单
在Java中使用JPopupMenu类表示弹出式菜单,弹出式菜单是一种特殊形式的菜单,不固定在窗体中的某个位置
实例:创建窗体是现在窗体中添加弹出式菜单
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; public class MenuDemo extends JFrame{ public MenuDemo(){ super(); //设置窗体基本信息 setTitle("创建菜单"); setBounds(100,100,240,160); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //添加容器 getContentPane().setLayout(null); final JPopupMenu menu = new JPopupMenu("编辑"); //为菜单添加菜单项 JMenuItem mi_open = new JMenuItem("文件"); JMenuItem mi_exit = new JMenuItem("退出"); //将菜单栏添加到菜单中 menu.add(mi_open); menu.add(mi_exit); this.add(menu); //添加菜单事件 mi_exit.addActionListener(new ActionListener(){ public void actionPerformed(final ActionEvent arg0){ System.exit(0); } }); this.addMouseListener(new MouseAdapter(){ @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub if(e.isPopupTrigger()){ menu.show(e.getComponent(), e.getX(), e.getY()); } } }); setVisible(true); } public static void main(String[] args){ new MenuDemo(); } }2. 添加工具栏和对话框
1) 创建工具栏
Java中JToolBar类用于创建工具栏,在窗体中工具栏紧挨着菜单栏,在窗体的顶部位置。
与菜单栏相同,JToolBar类也是控件的容器,可在工具栏中添加菜单,组合框等。
构造方法:
JToolBar toolbar = new JToolBar();
JToolBar toolbar = new JToolBar(“文件操作”);
实例:
import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JToolBar; public class ToolBarDemo extends JFrame{ public ToolBarDemo(){ //创建窗体 super(); setTitle("ToolBarDemo"); setBounds(100,100,269,222); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //新建工具栏 JToolBar toolBar = new JToolBar(); //工具设置为可以移动 toolBar.setFloatable(true); //将工具栏添加到窗体中 getContentPane().add(toolBar); //新建并添加按钮 JButton newButton = new JButton("新建"); toolBar.add(newButton); toolBar.addSeparator(); JButton saveButton = new JButton("保存"); toolBar.add(saveButton); toolBar.addSeparator(); JButton closeButton = new JButton("退出"); toolBar.add(closeButton); this.setVisible(true); //设置按钮事件 closeButton.addMouseListener(new MouseListener(){ @Override public void mouseClicked(MouseEvent arg0) { // TODO Auto-generated method stub System.exit(0); } @Override public void mouseEntered(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent arg0) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated method stub } }); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new ToolBarDemo(); } }2)打开本地文件对话框
JFileChooser类为用户选择文件提供了一种简单的机制。通过该类创建的对象是一个文件选择对话框,可以方便地选择文件。
JFileChooser类还提供了两个比较重要的字段APPROVE_OPTION和CANCEL_OPTION,分别用于判断用户在文件选择对话框中是淡季了“打开”还是“取消”。
JFileChooser实例通过showOpenDialog()方式显示对话框,该方法返回int,用来判断用户是否选择了文件或路径。
使用文件过滤器
JFileChooser类提供了setFileFilter(FileFilter filter)方法,通过该方法可以为文件选择对话框设置过滤器,使其只显示指定类型的文件。
实例:创建窗体,为窗体添加文件菜单,在文件菜单中添加打开菜单项,实现当前用户菜单打开菜单项后,弹出打开文件对话框。
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileFilter; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.filechooser.FileNameExtensionFilter; public class FileChooserDemo extends JFrame{ public FileChooserDemo(){ //创建窗体 super(); setTitle("FileChosserDemo"); setBounds(100,100,294,167); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //新建菜单栏 JMenuBar menuBar = new JMenuBar(); JMenu menu = new JMenu("文件"); //将菜单栏加入窗体 setJMenuBar(menuBar); //将菜单加入菜单栏 menuBar.add(menu); //新建菜单项 JMenuItem open = new JMenuItem("打开"); //添加事件 open.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub JFileChooser fileChooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter( "图像文件(*.bmp;*.gif;*.jpg;*.jpeg)","bmp","gif","jpg","jpeg"); fileChooser.setFileFilter(filter); int returnValue = fileChooser.showOpenDialog(getContentPane()); } }); menu.add(open); setVisible(true); } public static void main(String[] args){ new FileChooserDemo(); } }
发表评论
-
JavaSE20—绘图
2011-05-18 20:10 1502JavaSE20—绘图 1. 绘制图形 Graphics类是 ... -
JavaSE19—Swing高级控件(下)
2011-05-15 17:28 1086JavaSE19—Swing高级控件(下) 1. 工具栏与对话 ... -
JavaSE17—GUI事件
2011-05-08 20:52 1037JavaSE17—GUI事件处理机 ... -
JavaSE15—多线程
2011-05-03 19:10 826JavaSE15—多线程 1. 多线程简介 程序:程序是计算 ... -
JavaSE14—窗体程序开发(下)
2011-05-01 16:55 965JavaSE14—窗体程序开发(下) 1. 基础组件(续) ... -
JavaSE13—窗体程序开发(中)
2011-05-01 16:53 1131JavaSE13—窗体程序开发(中) 1、 布局方式 1) ... -
JavaSE12—窗体程序开发(上)
2011-04-29 16:59 1462JavaSE12—窗体程序开发 ... -
JavaSE11—网络编程初步
2011-04-29 16:58 937JavaSE11—网络编程初步 1. 背景知识 1) 端口 ... -
JavaSE 10 —IO流
2011-04-28 20:00 862JavaSE 10 —IO流 1.IO流简介 Java的输入 ... -
JavaSE09—Java类集框架
2011-04-26 19:32 834JavaSE09—Java类集框架 1. 类集接口 接口: ... -
JavaSE08—包,访问权限及异常处理
2011-04-26 19:31 629JavaSE08—包,访问权限 ... -
JavaSE07—Java常用类库
2011-04-26 19:30 626JavaSE07—Java常用类库 1. String类和S ... -
JavaSE06—类的其他问题
2011-04-26 19:28 664JavaSE06—类的其他问题 1. Objec ... -
JavaSE05—抽象类与接口
2011-04-26 19:27 617JavaSE05—抽象类与接口 1. ... -
JavaSE04—类的封装,继承与多态
2011-04-26 19:26 682JavaSE04—类的封装,继 ... -
JavaSE03—类和对象
2011-04-26 19:24 626JavaSE03—类和对象 1. ... -
Java SE02——数组
2011-04-26 19:23 626Java SE02——数组 1. 数组的声 ... -
Java SE01——原生数据类型
2011-04-26 19:18 831Java SE01——原生数据类型 1.Java中的数据类 ...
相关推荐
这是自己用了两个星期完成的仓库管理系统,用了JavaSE的Swing技术,对于初学者来说绝对是一个很优秀的案例。里面有视频教程,是自己的录像,肯定会对大家有很大的帮助。也有软件的说明文档。
基于javaSE的java期末课程设计--高校考勤系统,需要的小伙伴自取
本资源以思维导图的方式,罗列了javase基础及高级部分的知识点,剔除了一些java常识的知识点,只保留了易错、易混点,并提供了部分使用方法。适合初学者作为复习使用。
才用JavaSe Swing开发的学生管理系统,功能齐全,便于学习。swing+access
JavaSE JFC技术 (AWT + Swing + Graphics2D):完全不改变原生Swing代码,换肤。
可以将输入的带运算符号的字符串解析为表达式,支持任意长度的加减乘除运算,比如1+2*3/(5-1),swing图形界面,包含完整源码
Java基础每日复习笔记-JavaSE高级阶段.edf
功能概述 1、散客开单:完成散客的开单,可一次最多开5间相同类型的房间。 2、团体开单:完成团体的开单,开放数量没有限制,可同时开不同类型的房间。 ... 4、客房预订:完成增加预订、修改预订、删除预订,预订情况的...
一个简单的javase时间控件,可以选择年月日,模仿js时间控件
javaSE swing 做的windows资源管理器,包含详细说明文档论文,功能比windows自带的资源管理器还要强大。 java初学者学习学习也不错
Java基础每日复习笔记-JavaSE高级阶段.2020-10-13-211312.edf
在JavaSE,给swing中的控件实现超链接效果其实很简单,代码是拿JLabel来举的例子
JavaSE基本知识 适合新手入门 JavaSE基本知识 适合新手入门 JavaSE基本知识 适合新手入门
JavaSE swing写的qq,毕业设计含论文,99%相似,多人已用做毕业设计。可惜只让传15M,将代码打jar包,双击即可运行。 使用Socket TCP/IP实现,初学者学习学习也不错。
javaSE
javaSe Swing写的学生管理系统,内涵数据库.
基于JAVA SE写的聊天系统有服务器端和客户端,
每个java 程序员必备 javase api 中文版
JavaSE常见面试题-高级反射-JVM篇