swing高级控件
场景:JavaSE19—Swing高级控件(上)
JavaSE19—Swing高级控件(下)
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)
实例:创建带有系统托盘的窗体,在系统盘中添加“显示主窗体”与“退出”弹出式菜单
JavaSE19—Swing高级控件(下)
JavaSE19—Swing高级控件(下)
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); } }