- public class BlurJButton extends JButton {
- public BlurJButton(String text) {
- super(text);
- }
- public void paintComponent(Graphics g) {
- if(isEnabled()) {
- super.paintComponent(g);
- return;
- }
- BufferedImage buf = new BufferedImage(getWidth(),getHeight(),
- BufferedImage.TYPE_INT_RGB);
- super.paintComponent(buf.getGraphics());
- // Blur the buffered image (see next section)
- }
- }
- float[] my_kernel = {
- 0.10f, 0.10f, 0.10f,
- 0.10f, 0.20f, 0.10f,
- 0.10f, 0.10f, 0.10f };
- ConvolveOp op = new ConvolveOp(new Kernel(3,3, my_kernel));
- Image img = op.filter(buf,null);
- g.drawImage(img,0,0,null);
- }
- public static void main(String[] args) {
- JFrame frame = new JFrame("Blurred Button Hack");
- final JButton button = new BlurJButton("A Blurred Button");
- JButton control = new JButton("Switch");
- control.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent evt) {
- button.setEnabled(!button.isEnabled());
- }
- });
- frame.getContentPane().add(button);
- frame.getContentPane().add("South",control);
- frame.pack();
- frame.show();
- }
- //该片段来自于http://www.codesnippet.cn/detail/290820135458.html
来源: http://www.codesnippet.cn/detail/290820135458.html