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() {
@Override
public 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);