本文共 2148 字,大约阅读时间需要 7 分钟。
package hrhi;import java.awt.Container;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Toolkit;import javax.swing.ImageIcon;import javax.swing.JPanel;import javax.swing.JScrollPane;import nc.ui.pub.beans.UIDialog;public class ImagDialog extends UIDialog{ private static final long serialVersionUID = -425504236192063573L; public ImagDialog(Container parent,String imagePath) { super(parent); init(imagePath); } private void init(String imagePath) { ImageIcon icon = new ImageIcon(imagePath); ImgPanel panel = new ImgPanel(icon); int width = icon.getIconWidth(); int height = icon.getIconHeight(); panel.setPreferredSize(new Dimension(width, height)); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); if(screenSize.width*0.8 < width){ width = (int) (screenSize.width*0.8); } if(screenSize.height*0.8 < height){ height = (int) (screenSize.height*0.8); } JScrollPane paramComponent = new JScrollPane(panel); this.setSize(width+20, height+20);// this.setRootPane(new JRootPane()); this.getContentPane().add(paramComponent); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(2); } class ImgPanel extends JPanel { private static final long serialVersionUID = -412575202869875133L; private ImageIcon icon; public ImgPanel(ImageIcon icon) { super(); this.icon = icon; } public void paintComponent(Graphics g) { g.drawImage(icon.getImage(), 0, 0,this);//图片不会自动缩放 } }}
找到图片组件,添加监听鼠标事件
JComponent component = headItem.getComponent();MouseAdapter paramMouseListener = new MouseAdapter() { @Overridepublic void mouseClicked(MouseEvent event) { if(event.getButton() == MouseEvent.BUTTON1 && event.getClickCount() == 1){ PsndocFormEditor ed = (PsndocFormEditor) getEditor(); BillItem headItem = ed.getBillCardPanel().getHeadItem("photo"); String imagePath = headItem.getImagePath(); if(imagePath ==null){ return; } ImagDialog imagDialog = new ImagDialog(getEntranceUI(),imagePath); imagDialog.showModal(); imagDialog.destroy(); } } };component.addMouseListener(paramMouseListener);
转载地址:http://azfrf.baihongyu.com/