java swing 毛玻璃_Swing透明和变换

/*** @(#)TransparentFrame.java  v0.1.0  2007-10-21*/packageruislan.rswing.test;importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Container;importjava.awt.Dimension;importjava.awt.Toolkit;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.geom.RoundRectangle2D;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JSlider;importjavax.swing.border.LineBorder;importjavax.swing.event.ChangeEvent;importjavax.swing.event.ChangeListener;importcom.sun.jna.examples.WindowUtils;/*** Transparent JFrame use JNA

*

*@authorruislan 

*@version0.1.0*/publicclassTransparentFrame {privateJFrame frame;privateJPanel container;privateJSlider slider;privateJPanel titleBar;privateJLabel titleLabel;privateJButton closeButton;publicstaticvoidmain(String[] args) {newTransparentFrame().launch();

}privatevoidlaunch() {

createUI();

launchUI();

}protectedvoidlaunchUI() {

frame.setVisible(true);

}protectedvoidcreateUI() {

System.setProperty("sun.java2d.noddraw","true");

frame=newJFrame();

frame.setSize(200,150);

frame.setAlwaysOnTop(true);

frame.setUndecorated(true);

container=newJPanel();

frame.setContentPane(container);

container.setLayout(newBorderLayout());

container.add(newJLabel("Ubunto vs Vista, I like both."),

BorderLayout.CENTER);

container.setBorder(newLineBorder(Color.BLACK));

titleBar=newJPanel();

titleBar.setLayout(newBorderLayout());

titleLabel=newJLabel("JNA is great!");

titleBar.add(titleLabel, BorderLayout.CENTER);

titleBar.setBorder(newLineBorder(Color.GRAY));

closeButton=newJButton("X");

closeButton.setFocusPainted(false);

closeButton.addActionListener(newActionListener() {

@OverridepublicvoidactionPerformed(ActionEvent e) {

System.exit(0);

}

});

titleBar.add(closeButton, BorderLayout.EAST);

container.add(titleBar, BorderLayout.NORTH);

slider=newJSlider(0,100);

slider.setValue(100);

slider.addChangeListener(newChangeListener() {

@OverridepublicvoidstateChanged(ChangeEvent e) {floatvalue=slider.getValue();

WindowUtils.setWindowAlpha(frame, value*0.01f);

}

});

container.add(slider, BorderLayout.SOUTH);

RoundRectangle2D.Float mask=newRoundRectangle2D.Float(0,0, frame

.getWidth(), frame.getHeight(),20,20);

WindowUtils.setWindowMask(frame, mask);

centerWindow(frame);

}publicstaticvoidcenterWindow(Container window) {

Dimension dim=Toolkit.getDefaultToolkit().getScreenSize();intw=window.getSize().width;inth=window.getSize().height;intx=(dim.width-w)/2;inty=(dim.height-h)/2;

window.setLocation(x, y);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值