*这个小程序没试运行过,现写的.如果不能运行自己找找原因,可能是代码的英文打错了.
*效果 点击界面中的""右键点我""标签 则d出一个窗口.d出来的窗口出现的坐标可以默认.
*可以自己定, 也可以通过鼠标事件返回鼠标坐标,出现在鼠标旁边.
*我这里只是默认...主要是演示鼠标右键的触发事件.
*/
public class Test extends JFrame implments MouseListener{
JLabel jl
Chke c
//主函数
pulblic static void main(String args){
Test t=new Test()
}
public Test(){
jl=new JLabel("右键点我")
jl.addMouseListener(this)
this.add(jl)
this.setSize(大小自己定两个数字)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)//关闭窗口同时结束进程.
this.setVisible(true)
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
System.out.print("鼠标按键被按下,")
int i = e.getButton()
if (i == MouseEvent.BUTTON1) {
System.out.println("按下的是鼠标左键")
//按下左键就关闭d出来的窗口,先要判断c是否已经创建了.
if(c!=null){
c.Close()
}
}
if (i == MouseEvent.BUTTON2)
System.out.println("按下的是鼠标中键")
if (i == MouseEvent.BUTTON3 && e.getSource==jl ) {
/**如果有 && e.getSource==jl 则只是在jl这个标签上点击鼠标右键才触发事件,
*如果没有&& e.getSource==jl 则在界面的任何地方都有右键触发事件.
*/
System.out.println("按下的是鼠标右键")
//创建一个新窗口.
c=new Chke()
}
}
@.............后面还有三个继承的鼠标事件函数,依次应该是,2松开鼠标,3,鼠标进入界面,
4鼠标离开界面.
}
//这个类,可以继承DaLog 也可是JPane JFrame
class Chke extends JPane{
//构造函数
public Chke (){
this.setSize(100,85)
this.setVisible(true)
}
//关闭本窗口函数.
public static void Close(){
this.dispose()
}
}
java 可以实现将程序最小化到托盘的吧.....甚至还可以设定最小化到托盘的图标,这样的话,当有新消息到达时,你可以把它的图标设置成无色的另一图片(或者只将其最小化,而不设置其图标),然后再设置成原来的图片,如此反复,就实现了闪烁的功能.........
不过似乎先要判断当前 *** 作系统是否支持系统托盘..........下面这个程序实现了系统托盘,但是似乎在我的电脑上没实现出来,难道 *** 作系统不支持?
import java.awt.*
import java.awt.event.*
import javax.swing.*
public class SystemTrayTest extends JFrame implements ActionListener
{
//创建菜单、菜单项数组、消息类型
PopupMenu popup=new PopupMenu()
Menu menu=new Menu("消息类型")
MenuItem[] itemArray ={new MenuItem("信息消息"),new MenuItem("常规消息"),
new MenuItem("警告消息"),new MenuItem("错误消息"),new MenuItem("退出程序")}
//定义系统托盘、托盘图标变量
SystemTray tray
TrayIcon trayIcon
//构造方法
public SystemTrayTest(){
//对菜单项添加监听并将菜单项添加到菜单中
for(int i=0i<itemArray.lengthi++){
if(i<4){
itemArray[i].addActionListener(this)//为菜单项注册监听器
//将菜单项数组中前3个菜单项添加进"d出消息"菜单中
menu.add(itemArray[i])
}
itemArray[4].addActionListener(this)//添加监听
popup.add(menu)//将d出消息菜单添加到菜单中
popup.add(itemArray[4])//将退出菜单添加到菜单中
}
// 判断当前 *** 作系统是否支持系统托盘
if (SystemTray.isSupported()) {
//获取系统托盘
tray = SystemTray.getSystemTray()
//加载图标
Image image = Toolkit.getDefaultToolkit().getImage("d:/trayIcon.jpg")
//创建托盘图标
trayIcon=new TrayIcon(image,"系统托盘测试",popup)
//托盘图标自动设置尺寸
trayIcon.setImageAutoSize(true)
try{//添加托盘图标到系统托盘中
tray.add(trayIcon)
}
catch(AWTException e){
e.printStackTrace()
}
//为托盘图标注册监听器
trayIcon.addActionListener(this)
}
//设置窗体关闭按扭所执行的动作
this.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
SystemTrayTest.this.hide()//隐藏窗体
}
})
//设置窗体属性
this.setTitle("系统托盘测试")
this.setBounds(200,200,150,100)
this.setVisible(true)
}
//重写actionPerformed方法
public void actionPerformed(ActionEvent e){
if(e.getSource()==itemArray[0])
{//点击信息消息菜单项执行的动作
trayIcon.displayMessage("信息","程序最小化,仍在运行",TrayIcon.MessageType.INFO)
}else if(e.getSource()==itemArray[1])
{//点击信息消息菜单项执行的动作
trayIcon.displayMessage("常规信息","现在一切正常",TrayIcon.MessageType.NONE)
}else if(e.getSource()==itemArray[2])
{//单击警告消息菜单项执行的动作
trayIcon.displayMessage("警告信息","有不明来源的攻击",TrayIcon.MessageType.WARNING)
}else if(e.getSource()==itemArray[3])
{//点击错误消息菜单项执行的动作
trayIcon.displayMessage("错误信息","程序发生严重错误",TrayIcon.MessageType.ERROR)
}else if(e.getSource()==itemArray[4])
{//点击退出程序菜单项执行的动作
System.exit(0)
}else if(e.getSource()==trayIcon)
{//双击托盘图标执行的代码
this.show(true)
}
}
//主方法
public static void main(String args[])
{//创建SystemTrayTest窗体对象
new SystemTrayTest()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)