import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.GridLayout;
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.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
public class Main extends JFrame{
JProgressBar pro2;
public Main() {
setTitle("菜单");
setBounds(100, 200, 500, 500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
Container c = getContentPane();
JButton newbutton = new JButton("新建");
JButton savebutton = new JButton("保存");
JButton exitbutton = new JButton("退出");
//工具栏
JToolBar tool = new JToolBar();//创建工具栏对象
c.add(tool);//容器布局一定要采用边界布局
c.setLayout(new GridLayout(3,1,10,10));
tool.add(newbutton);
tool.addSeparator();//添加分割线
tool.add(savebutton);
tool.addSeparator(new Dimension(20, 0));//指定分隔符大小
tool.add(exitbutton);
tool.setFloatable(false);//不允许拖动
//文本选择器
JTextField textField = new JTextField();
c.add(textField);
textField.setBounds(50, 50, 100, 20);
newbutton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser = new JFileChooser();//创建文件选择对话框
//把不符合条件的全部过滤
FileFilter filter = new FileNameExtensionFilter("图片", "jpg","png","gif");
fileChooser.setFileFilter(filter);//添加过滤器
int i = fileChooser.showOpenDialog(getParent());//显示文件选择对话框
if( i == JFileChooser.APPROVE_OPTION) {//判断用户单击的是否为“打开”按钮
File f = fileChooser.getSelectedFile();//获取选中的文件对象
textField.setText(f.getAbsolutePath());//显示选中文件的名称
}
}
});
//进度条
//不确定进度条
JProgressBar pro1 = new JProgressBar();
pro1.setIndeterminate(true);//采用不确定进度条
pro1.setBounds(20, 80, 100, 30);
pro1.setStringPainted(true);//设置提示信息
pro1.setString("连接中");
c.add(pro1);
//确定进度条
pro2 = new JProgressBar();
pro2.setIndeterminate(false);//采用确定进度条
pro2.setBounds(80, 20, 100, 30);
pro2.setStringPainted(true);//设置提示信息
c.add(pro2);
MyThread m = new MyThread();
m.start();
setContentPane(c);
//系统托盘
PopupMenu menu = new PopupMenu();//创建弹出菜单对象
menu.add(new MenuItem("打开"));//创建"打开"菜单项对象
menu.add(new MenuItem("离开"));
try {
Image image = ImageIO.read(new File("src/tab.JPG"));
TrayIcon tray = new TrayIcon(image,"使用系统托盘",menu);//创建托盘图片对象
SystemTray system = SystemTray.getSystemTray();//获取系统托盘对象
system.add(tray);//将托盘图片添加到系统托盘中
} catch (IOException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
} catch (AWTException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
//桌面集成控件
Desktop d = Desktop.getDesktop();
if(Desktop.isDesktopSupported()) {
System.out.println("当前系统支持桌面集成控件");
}
try {
// d.browse(new URI("www.baidu.com"));//自动打开默认浏览器访问网址
// d.open(new File("C:\\Users\\thinkpad\\Desktop","a.png"));//自动打开桌面文件
d.edit(new File("C:\\Users\\thinkpad\\Desktop","a.png"));//编辑该图片
} catch (IOException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
}
//确定进度条线程
class MyThread extends Thread{
@Override
public void run() {
for( int i = 0 ; i <=100 ; i++) {
pro2.setValue(i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
public static void main(String args[]) {
new Main();
}
}
工具栏(位置可放在最上面):
文本选择器(点击新建,点击打开就可以输出地址(内含文件过滤器代码,可自行去寻找)):
进度条(右边是可以动的进度条(用了线程(线程那里也讲了进度条))):
系统托盘:
桌面集成控件:
用了这行代码,直接打开编辑这张图片。
具体效果可以运行尝试,只需注意一下,文件的位置。避免报错。