通过重绘JPanel 添加背景图片: (GIf用这个也可以很好的显示)
final ImageIcon imageIcon = new ImageIcon("src/test.gif");
imageIcon.setImage(imageIcon.getImage().getScaledInstance(CHATFRAME_WIDTH,HEIGHT, Image.SCALE_DEFAULT));
JPanel aPanel = new JPanel() {
Image image = imageIcon.getImage();
Image grayImage = GrayFilter.createDisabledImage(image);
{
setOpaque(false);
}
public void paint(Graphics g) {
g.drawImage(imageIcon.getImage(), 0, 0,CHATFRAME_WIDTH,HEIGHT, this);
super.paint(g);
}
};
这里要把所有的组件 setOpaque(false)(透明)
实现图标的缩放
imageIcon.setImage(icon.getImage().getScaledInstance(40,40, Image.SCALE_DEFAULT));
用自己想要的图作为按钮
ImageIcon closeIcon = new ImageIcon("src/2.png");
JButton closeBtn = new JButton(closeIcon);
closeBtn.setContentAreaFilled(false);//JButton仅显示图片icon的透明
closeBtn.setBorderPainted(false);
closeBtn.setBounds(605,0,40,40);
closeBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(-1);
}
});
播放音乐(这个方法要把JVM预编译下的一个Error改成Warning才可以运行)
public class MusicPlay {
AudioStream as;
public void playMusic(){
try { FileInputStream fileau=new FileInputStream("music/消息.wav" );
as=new AudioStream(fileau);
AudioPlayer.player.start(as);
}
catch (Exception e){ e.printStackTrace(); }
}
}
添加窗口可被鼠标拖动的监听器(要在setVisible(true)之前加,否则失效)
setUndecorated(true);(取消Frame 的基本装饰)
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
xOld = e.getX();//记录鼠标按下时的坐标
yOld = e.getY();
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
int xOnScreen = e.getXOnScreen();
int yOnScreen = e.getYOnScreen();
int xx = xOnScreen - xOld;
int yy = yOnScreen - yOld;
setLocation(xx, yy);//设置拖拽后,窗口的位置
}
});
截屏功能(只能全屏)
public class CaptureScreen {
//截图 并保存
public static void CaptureScreen(String folder,String fileName)throws Exception{
//获得屏幕大小并创建一个Rectangle(区域)
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle screenRectangle = new Rectangle(screenSize);
//创建包含从屏幕中读取的像素的图像
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle);
//保存路径
File screenFile = new File(folder);
if(!screenFile.exists()) {
screenFile.mkdir();
}
File f = new File(screenFile,fileName);
//决定了f为文件,将图像1以.png格式写入文件f
ImageIO.write(image, "png", f);
if(Desktop.isDesktopSupported()&&Desktop.getDesktop().isSupported(Desktop.Action.OPEN)) {
Desktop.getDesktop().open(f);
}
}
public static void main(String[] args) {
try {
CaptureScreen("hello","11.png");
}catch(Exception e){
e.printStackTrace();
}
}
}
获取本地视频播放器播放本地视频
public class shipin {
//打开本地播放器并播放视频 音频
public static void openExe(String file) {
try
{
Runtime.getRuntime().exec("\"C:/Program Files (x86)/Windows Media Player/wmplayer.exe\""+file);
} catch (Exception e)
{
System.out.println("Error!");
}
}
}