资源描述
正在组件上方便的显现图象是 swing 比 AWT 优越的特之一
正在 swing 中,frame, button, lable 等组件都可超卓的用图象来加强它的外瞧,以 button 为例,卖建立一
个 button 东西的时分一般是这样的:
JButton button = new JButton("Click me");
这样就建立了一个 button 东西,上面显现的文字是 Click me.
如今我们来稍做变动:
ImageIcon buttonIcon = new ImageIcon("button.gif", "a background of button");
JButton button = new JButton(buttonIcon);
这两行代就达到了手法,正在 button 上显现了图象 button.gif,注重我们用的是 ImageIcon 类,而
不是 Image 类。ImageIcon 中的第二个参数是对 ImageIcon 东西的描绘,这个参数卖前可能会被
assistive 技术用到。
假如想正在 button 上同时显现文字和图象,还可以这样:
JButton button = new JButton("Click me", buttonIcon);
另外,还可以界说图象正在 组件上的地位,如:
JButton button = new JButton("Click me", buttonIcon, JButton.CENTER);
最后,正在特另外讲一下如何改变你的 applet/application 窗口图标,
正在 applet中,界说了一个image东西后就可以直接以它为参数来使用 setIconImage() 要领了.
正在applaction中,Frame东西也可以使用setIconImage(Image image)要领设置窗口左上角的图标,Java窗口默许图标为一个咖啡杯,图像不支撑Icon等图标式样。
例:
import java.awt.*;
import java.awt.event.*;
public class Frame_Icon{
public static void main(String args[]){
Frame frame=new Frame("设置Java窗口的图标");
Toolkit tool=frame.getToolkit(); //得到一个Toolkit东西
Image myimage=tool.getImage("xueren.gif"); //由tool获取图像
frame.setIconImage(myimage);
frame.setSize(400,300);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}
java 最小化到系统托盘
2010-09-06 15:32
package test;
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.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class MyTray {
TrayIcon trayIcon;//托盘图标,但不是Image类型的 哦
SystemTray Tray;//系统托盘
Image img=(new ImageIcon("images/icon.png")).getImage();//托盘图标,建议使用较小的图片
public MyTray(){
final JFrame frame=new JFrame();
JPanel jp=new JPanel();
frame.add(jp);
frame.setSize(320,240);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setIconImage(img);//设置窗口左上角的图标
frame.setVisible(true);
Tray=SystemTray.getSystemTray();//获得系统托盘实例
//创建系统托盘的右键弹出菜单
PopupMenu pm=new PopupMenu();
MenuItem mi0=new MenuItem("Open");
MenuItem mi1=new MenuItem("Close");
pm.add(mi0);
pm.add(mi1);
trayIcon=new TrayIcon(img,"",pm);//创建托盘图标实例
trayIcon.setImageAutoSize(true);//图标自动适应托盘,也就是说它自动改变大小
trayIcon.setToolTip(" ");//设置提示语
//添加系统托盘图标
frame.addWindowListener(new WindowAdapter() {//当“关闭”窗口时,最小化到系统托盘
public void windowClosing(WindowEvent e) {
try {
Tray.add(trayIcon);
} catch (AWTException exc) {
exc.printStackTrace();
}
}});
mi0.addActionListener(new ActionListener(){ //右键弹出菜单的事件监听
public void actionPerformed(ActionEvent e) {
frame.setExtendedState(JFrame.NORMAL);
frame.setVisible(true);
Tray.remove(trayIcon);
}
});
mi1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
Tray.remove(trayIcon);//退出程序,移出系统托盘处的图标
}
});
trayIcon.addMouseListener(new MouseAdapter(){//单击鼠标左键,也是显示窗口
public void mouseClicked(MouseEvent e){
if(SwingUtilities.isLeftMouseButton(e)){//如果点击的是鼠标左键
frame.setExtendedState(JFrame.NORMAL);
frame.setVisible(true);
Tray.remove(trayIcon);
}
}
});
}
public static void main(String[] args){
if (SystemTray.isSupported()) { // 如果操作系统支持托盘,那么就创建MyTray的实例
new MyTray();
}
}
}
展开阅读全文