JavaSE19—Swing高级控件(下)
1. 工具栏与对话框
1) 颜色对话框
javax.swing包中的JColorChooser类的静态方法可以创建一个颜色对话框
showDialog(Component component,String title,Color initialColor);
实例:创建窗体,在窗体中添加按钮,通过按钮改变窗体的背景颜色
通过javax.swing包中的JOptionPane类的静态方法showConfirmDialog()可创建一个确认对话框。
实例:
1) 获取系统托盘
Java中的java.awt.SystemTray类表示桌面的系统托盘,每个Java应用程序在运行时都会分配一个该类的实例。该类提供了一些方法可以实现托盘操作。
在某些平台上,可能不存在或不支持系统托盘,可以使用SystemTray类的isSupported()方法来判断当前系统是否支持系统托盘
if(SystemTray.isSupported()){
SystemTray systemTray = SystemTray.getSystemTray();
}
2) 为系统托盘获取图标
可以使用SystemTray类的add(TrayIcon icon)方法将托盘图标添加到系统托盘中,如果不需要托盘时,可以使用该类的remove(TrayIcon icon)方法将托盘移除。
3) 添加弹出菜单
用托盘图标有3个入口参数的构造方法来实现。
应用TrayIcon()类的setPopup方法来实现
setPopupMenu(PopupMenu pupupMenu)
实例:创建带有系统托盘的窗体,在系统盘中添加“显示主窗体”与“退出”弹出式菜单
1. 工具栏与对话框
1) 颜色对话框
javax.swing包中的JColorChooser类的静态方法可以创建一个颜色对话框
showDialog(Component component,String title,Color initialColor);
实例:创建窗体,在窗体中添加按钮,通过按钮改变窗体的背景颜色
import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JColorChooser; import javax.swing.JFrame; import javax.swing.JPanel; public class ColorChooserDemo extends JFrame { public ColorChooserDemo(){ //建立窗口 super(); getContentPane().setLayout(null); setBounds(100,100,251,182); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //创建面板对象 final JPanel jp = new JPanel(); jp.setLayout(null); jp.setBounds(0,0,243,148); getContentPane().add(jp); //创建按钮对象 final JButton jb = new JButton(); //添加按钮 jb.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub Color color = JColorChooser.showDialog(getContentPane(), "调色板",jp.getBackground()); jp.setBackground(color); } }); jb.setText("选择颜色"); jb.setBounds(65,43,86,28); jp.add(jb); setVisible(true); } public static void main(String[] args){ new ColorChooserDemo(); } }2) 确认对话框
通过javax.swing包中的JOptionPane类的静态方法showConfirmDialog()可创建一个确认对话框。
实例:
import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class AffirmFrameDemo extends JFrame { private JTextArea nameText; private JTextField nameTextField; public static void main(String[] args){ EventQueue.invokeLater(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub try{ new AffirmFrameDemo(); }catch(Exception e){ e.printStackTrace(); } } }); } public AffirmFrameDemo(){ super(); getContentPane().setLayout(null); setBounds(100,100,263,183); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JPanel jp = new JPanel(); jp.setLayout(null); jp.setBounds(0,0,260,149); getContentPane().add(jp); nameTextField = new JTextField(); nameTextField.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub String name = nameTextField.getText(); //如果没有输入 if(name.equals("")){ JOptionPane.showMessageDialog(getContentPane(), "没有添加姓名信息!","信息提示框",JOptionPane.CANCEL_OPTION); }else{ int n = JOptionPane.showConfirmDialog(getContentPane(), "确认正确吗?","信息提示框",JOptionPane.YES_NO_CANCEL_OPTION); if(n==JOptionPane.YES_OPTION){ nameText.append("\n"+name); nameTextField.setText(""); } } } }); nameTextField.setBounds(115,10,105,22); jp.add(nameTextField); nameText = new JTextArea(); nameText.setBounds(40,45,180,85); jp.add(nameText); final JLabel label = new JLabel("请输入姓名:"); label.setBounds(32,12,78,18); jp.add(label); this.setVisible(true); } }2. 系统托盘
1) 获取系统托盘
Java中的java.awt.SystemTray类表示桌面的系统托盘,每个Java应用程序在运行时都会分配一个该类的实例。该类提供了一些方法可以实现托盘操作。
在某些平台上,可能不存在或不支持系统托盘,可以使用SystemTray类的isSupported()方法来判断当前系统是否支持系统托盘
if(SystemTray.isSupported()){
SystemTray systemTray = SystemTray.getSystemTray();
}
2) 为系统托盘获取图标
可以使用SystemTray类的add(TrayIcon icon)方法将托盘图标添加到系统托盘中,如果不需要托盘时,可以使用该类的remove(TrayIcon icon)方法将托盘移除。
3) 添加弹出菜单
用托盘图标有3个入口参数的构造方法来实现。
应用TrayIcon()类的setPopup方法来实现
setPopupMenu(PopupMenu pupupMenu)
实例:创建带有系统托盘的窗体,在系统盘中添加“显示主窗体”与“退出”弹出式菜单
import java.awt.AWTException; import java.awt.Image; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.TrayIcon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JFrame; public class SystemFrameDemo extends JFrame { public static void main(String[] args){ SystemFrameDemo newDemo = new SystemFrameDemo(); newDemo.setVisible(true); } public SystemFrameDemo(){ //创建新窗口 super(); setTitle("系统托盘"); setBounds(100,100,260,180); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //创建系统托盘 if(SystemTray.isSupported()){ URL url = SystemFrameDemo.class.getResource("system.png"); ImageIcon icon = new ImageIcon(url); Image image = icon.getImage(); TrayIcon trayIcon = new TrayIcon(image); trayIcon.setToolTip("系统托盘"); //创建弹出窗口 PopupMenu popupMenu = new PopupMenu(); MenuItem exit = new MenuItem("退出"); MenuItem show = new MenuItem("显示出窗口"); //对菜单进行监听 exit.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub System.exit(0); } }); show.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub showFrame(); } }); //将菜单添加到弹出菜单上 popupMenu.add(show); popupMenu.add(exit); //将弹出菜单添加到系统托盘上 trayIcon.setPopupMenu(popupMenu); SystemTray systemTray= SystemTray.getSystemTray(); try { systemTray.add(trayIcon); } catch (AWTException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } private void showFrame() { // TODO Auto-generated method stub setVisible(true); } }
发表评论
-
JavaSE20—绘图
2011-05-18 20:10 1504JavaSE20—绘图 1. 绘制图形 Graphics类是 ... -
JavaSE18—Swing高级控件(上)
2011-05-12 22:22 1497JavaSE18—Swing高级控件(上) 1. 为窗体添加 ... -
JavaSE17—GUI事件
2011-05-08 20:52 1042JavaSE17—GUI事件处理机 ... -
JavaSE15—多线程
2011-05-03 19:10 828JavaSE15—多线程 1. 多线程简介 程序:程序是计算 ... -
JavaSE14—窗体程序开发(下)
2011-05-01 16:55 968JavaSE14—窗体程序开发(下) 1. 基础组件(续) ... -
JavaSE13—窗体程序开发(中)
2011-05-01 16:53 1131JavaSE13—窗体程序开发(中) 1、 布局方式 1) ... -
JavaSE12—窗体程序开发(上)
2011-04-29 16:59 1465JavaSE12—窗体程序开发 ... -
JavaSE11—网络编程初步
2011-04-29 16:58 939JavaSE11—网络编程初步 1. 背景知识 1) 端口 ... -
JavaSE 10 —IO流
2011-04-28 20:00 863JavaSE 10 —IO流 1.IO流简介 Java的输入 ... -
JavaSE09—Java类集框架
2011-04-26 19:32 834JavaSE09—Java类集框架 1. 类集接口 接口: ... -
JavaSE08—包,访问权限及异常处理
2011-04-26 19:31 630JavaSE08—包,访问权限 ... -
JavaSE07—Java常用类库
2011-04-26 19:30 627JavaSE07—Java常用类库 1. String类和S ... -
JavaSE06—类的其他问题
2011-04-26 19:28 664JavaSE06—类的其他问题 1. Objec ... -
JavaSE05—抽象类与接口
2011-04-26 19:27 620JavaSE05—抽象类与接口 1. ... -
JavaSE04—类的封装,继承与多态
2011-04-26 19:26 683JavaSE04—类的封装,继 ... -
JavaSE03—类和对象
2011-04-26 19:24 627JavaSE03—类和对象 1. ... -
Java SE02——数组
2011-04-26 19:23 628Java SE02——数组 1. 数组的声 ... -
Java SE01——原生数据类型
2011-04-26 19:18 831Java SE01——原生数据类型 1.Java中的数据类 ...
相关推荐
这是自己用了两个星期完成的仓库管理系统,用了JavaSE的Swing技术,对于初学者来说绝对是一个很优秀的案例。里面有视频教程,是自己的录像,肯定会对大家有很大的帮助。也有软件的说明文档。
基于javaSE的java期末课程设计--高校考勤系统,需要的小伙伴自取
本资源以思维导图的方式,罗列了javase基础及高级部分的知识点,剔除了一些java常识的知识点,只保留了易错、易混点,并提供了部分使用方法。适合初学者作为复习使用。
才用JavaSe Swing开发的学生管理系统,功能齐全,便于学习。swing+access
可以将输入的带运算符号的字符串解析为表达式,支持任意长度的加减乘除运算,比如1+2*3/(5-1),swing图形界面,包含完整源码
JavaSE JFC技术 (AWT + Swing + Graphics2D):完全不改变原生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
基于JAVA SE写的聊天系统有服务器端和客户端,
javaSe Swing写的学生管理系统,内涵数据库.
JavaSE常见面试题-高级反射-JVM篇
swing界面的风格包,mac版本,内赋jar包与使用方法源码,有需要的可以自行下载