sample27_4.java

来自「Java SE 6.0前27-31章示的示例代码,简单易学」· Java 代码 · 共 123 行

JAVA
123
字号
package wyf.jc;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
//定义该类继承自JFrame
public class Sample27_4 extends JFrame implements ActionListener
{
	//创建按钮数组
	JButton[] jb={new JButton("写邮件"),new JButton("打开网站"),
				  new JButton("打开本地文件")};
	//创建用于输入URI的文本框数组
	JTextField[] jtf={new JTextField(),new JTextField()};
	//创建标签数组
	JLabel[] jl={new JLabel("邮件地址:"),new JLabel("网站地址:")};
	//创建文件选择器对象
	JFileChooser jfc=new JFileChooser();
	//声明Desktop类的引用d
	Desktop d;
	public Sample27_4()
	{
		//设置窗体的布局管理器
		this.setLayout(null);
		//循环对标签、文本框与按钮进行处理
		for(int i=0;i<jl.length;i++)
		{
			//设置标签、文本框与按钮的大小位置
			jl[i].setBounds(10,10+i*50,120,26);			
			jtf[i].setBounds(100,10+i*50,150,26);
			jb[i].setBounds(260,10+i*50,80,26);
			//将标签、文本框与按钮添加到窗体中
			this.add(jl[i]);
			this.add(jtf[i]);
			this.add(jb[i]);
			//设置按钮四周的边框留白
			jb[i].setMargin(new Insets(0,0,0,0));
			//为按钮注册动作事件监听器
			jb[i].addActionListener(this);
		}
		//设置打开本地文件按钮的大小位置、边框留白,并将其添加到窗体中
		jb[2].setBounds(120,110,100,26);
		jb[2].setMargin(new Insets(0,0,0,0));
		this.add(jb[2]);
		//为打开本地文件按钮注册动作事件监听器
		jb[2].addActionListener(this);		
		//测试当前平台是否支持Desktop
		if(Desktop.isDesktopSupported())
		{//获取Desktop对象
			d=Desktop.getDesktop();
		}		
		//设置窗口的标题、大小位置以及可见性
		this.setTitle("Desktop类示例");
		this.setResizable(false);
		this.setBounds(100,100,350,180);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	//实现ActionListener接口中的方法
	public void actionPerformed(ActionEvent ae)
	{
		if(ae.getSource()==jb[0])
		{//按下写邮件按扭
			//获取输入的邮件地址
			String mailTo=jtf[0].getText().trim();
			try
			{
				if(mailTo.length()>0)
				{//若有输入的地址则打开默认邮件客户端并填充邮件地址
					d.mail(new URI("mailto:"+mailTo));
				}
				else
				{//若没有输入地址则打开空白默认邮件客户端
					d.mail();
				}
			}
			catch(Exception e)
			{
				e.printStackTrace();
			}
		}
		else if(ae.getSource()==jb[1])
		{//按下打开网站按扭
			//获取用户输入的网址
			String uri=jtf[1].getText().trim();
			try
			{
				if(uri.length()>0)
				{//若有输入的网址则使用默认的浏览器浏览给出的网址
					d.browse(new URI(uri));
				}
			}
			catch(Exception e)
			{
				e.printStackTrace();
			}			
		}
		else if(ae.getSource()==jb[2])
		{//按下打开本地文件按扭
			//弹出文件选择器
			int c=jfc.showDialog(this,"请选择文件");
			if(c==JFileChooser.OPEN_DIALOG)
			{
				try
				{//获取文件所在的目录路径
					File f=jfc.getSelectedFile();
					//使用当前平台默认的关联程序打开文件
					d.open(f);
				}
				catch(Exception e)
				{
					e.printStackTrace();
				}				
			}
		}
	}
	public static void main(String[] args)
	{
		//创建Sample27_4窗体对象
		new Sample27_4();
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?