zoukankan      html  css  js  c++  java
  • tt

    package com.saic.mscatalog.plugin.item;
    
    import java.awt.AlphaComposite;
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.Font;
    import java.awt.GradientPaint;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.GridLayout;
    import java.awt.Image;
    import java.awt.Insets;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.image.BufferedImage;
    import java.awt.image.ConvolveOp;
    import java.awt.image.Kernel;
    
    import javax.swing.Box;
    import javax.swing.BoxLayout;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.ListCellRenderer;
    
    public class PluginPanel extends JPanel implements ListCellRenderer {
    
    	private PluginInfo pluginInfo = null;
    
    	private Image image = null;
    
    	private JPanel imagePanel = null;
    
    	private JButton imageBtn = null;
    
    	private static Dimension itemSize = new Dimension(255, 255);
    
    	public PluginPanel(PluginInfo pluginInfo) {
    		this.pluginInfo = pluginInfo;
    		this.image = new ImageIcon(pluginInfo.getImagePath()).getImage();
    		initDisplay();
    	}
    
    	private void initDisplay() {
    		this.setSize(itemSize);
    		this.setBackground(new Color(51, 51, 51));
    
    		GridBagLayout gridbag = new GridBagLayout();
    		GridBagConstraints c = new GridBagConstraints();
    		this.setLayout(gridbag);
    
    		c.gridx = 0;
    		c.gridy = 0;
    		c.anchor = GridBagConstraints.CENTER;
    		JLabel nameLabel = new JLabel();
    		nameLabel.setFont(new Font("Arial", Font.PLAIN, 19));
    		nameLabel.setForeground(Color.WHITE);
    		nameLabel.setText(pluginInfo.getName());
    		gridbag.setConstraints(nameLabel, c);
    		this.add(nameLabel);
    
    		c.gridx = 0;
    		c.gridy = 1;
    		imagePanel = new ImagePanel();
    		gridbag.setConstraints(imagePanel, c);
    		this.add(imagePanel);
    
    		imagePanel.setLayout(new BoxLayout(imagePanel, BoxLayout.Y_AXIS));
    		imagePanel.add(Box.createVerticalStrut(70));
    		imageBtn = new JButton("加载"); 
    		imageBtn.setPreferredSize(new Dimension(65, 25));
    		imageBtn.setAlignmentX(Component.CENTER_ALIGNMENT);
    		imagePanel.add(imageBtn);
    
    		this.addMouseListener(new MouseAdapter() {
    			public void mouseExited(MouseEvent e) {
    				if (e.getX() > PluginPanel.this.getWidth() || e.getY() > PluginPanel.this.getHeight() || e.getX() < 0 || e.getY() < 0) {
    					imageBtn.setVisible(false);
    					PluginPanel.this.setBackground(new Color(51, 51, 51));
    					// PluginPanel.this.setBorder(border);
    				}
    			}
    
    			@Override
    			public void mouseEntered(MouseEvent e) {
    				imageBtn.setVisible(true);
    				PluginPanel.this.setBackground(new Color(38, 38, 38));
    				// PluginPanel.this.setBorder(border);
    			}
    		});
    
    	}
    	
    	private  JButton getImageButton(){
    	 	JButton btn = new JButton();
    	 	btn.setSize(image .getWidth(null), image.getHeight(null));
    	 	btn.setIcon(null);
    	 	btn.setMargin(new Insets(0, 0, 0, 0));
    	 	btn.setIconTextGap(0);
    	 	btn.setBorderPainted(false);
    	 	btn.setBorder(null);
    	 	btn.setText(null);
    
    	 	btn.setPressedIcon(new ImageIcon("images/button-down.png"));
    //	 	btn.setRolloverIcon(new ImageIcon("images/button-over.png"));
    //	 	btn.setSelectedIcon(new ImageIcon("images/button-sel.png"));
    //	 	btn.setRolloverSelectedIcon(new ImageIcon("images/button-sel-over.png"));
    //	 	btn.setDisabledIcon(new ImageIcon("images/button-disabled.png"));
    //	 	btn.setDisabledSelectedIcon(new ImageIcon("images/button-disabled-selected.png"));
    		return null;
    	}
    
    	@Override
    	public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    	private class ImagePanel extends JPanel {
    		public ImagePanel() {
    			this.setSize(image.getWidth(null), image.getHeight(null) * 2);
    			this.setPreferredSize(new Dimension(image.getWidth(null), image.getHeight(null) * 2));
    		}
    
    		public Insets getInsets() {
    			return new Insets(0, 0, 0, 0);
    		}
    
    		protected void paintComponent(Graphics g) {
    			Graphics2D g2 = (Graphics2D) g;
    			g2.drawImage(createReflection(image), 0, 0, null);
    		}
    	}
    
    	private BufferedImage createReflection(Image image) {
    		int width = image.getWidth(null);
    		int height = image.getHeight(null);
    
    		BufferedImage result = new BufferedImage(width, height * 2, BufferedImage.TYPE_INT_ARGB);
    		Graphics2D g2 = result.createGraphics();
    
    		// 画原始图片。
    		g2.drawImage(image, 0, 0, null);
    		// 画黑影。
    
    		GradientPaint shadow = new GradientPaint(0, 0, Color.BLACK, 0, 5, Color.DARK_GRAY, true);
    		g2.setPaint(shadow);
    		g2.fillRect(0, height, width, height + 5);
    
    		// 画对称图片。
    		g2.scale(1.0, -1.0);
    		g2.drawImage(image, 0, -2 * height - 10, null);
    		g2.scale(1.0, -1.0);
    
    		// 对称图片设置渐变。
    		g2.translate(0, height);
    		Color c1 = new Color(255, 255, 255, 150);
    		Color c2 = new Color(0, 0, 0, 255);
    
    		GradientPaint mask = new GradientPaint(0, 0, c1, 0, height, c2);
    		g2.setPaint(mask);
    		g2.setComposite(AlphaComposite.DstOut);
    		g2.fillRect(0, 0, width, height);
    		g2.dispose();
    		return result;
    
    	}
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		JFrame jf = new JFrame();
    		jf.setSize(itemSize);
    		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		jf.setLocationRelativeTo(null);
    
    		jf.getContentPane().add(new PluginPanel(PluginInfoGen.getPluginInfos().get(0)));
    		jf.setVisible(true);
    
    	} 
    }
    

      

  • 相关阅读:
    jquery 插件扩展2
    jquery 插件扩展
    call apply bind
    bom object
    js oop 封装
    js oop 继承
    js页面之间传参2
    js弹出新窗口的6中方法
    display Tag
    js中extends方法
  • 原文地址:https://www.cnblogs.com/jinc/p/2405453.html
Copyright © 2011-2022 走看看