diff --git a/designer/src/com/fr/design/mainframe/alphafine/preview/FilePreviewPane.java b/designer/src/com/fr/design/mainframe/alphafine/preview/FilePreviewPane.java index 50938d48a..15b69aab2 100644 --- a/designer/src/com/fr/design/mainframe/alphafine/preview/FilePreviewPane.java +++ b/designer/src/com/fr/design/mainframe/alphafine/preview/FilePreviewPane.java @@ -1,22 +1,25 @@ package com.fr.design.mainframe.alphafine.preview; import com.fr.design.gui.ilable.UILabel; +import com.fr.design.mainframe.alphafine.AlphaFineConstants; import javax.swing.*; import java.awt.*; +import java.awt.image.BufferedImage; /** * Created by XiaXiang on 2017/5/2. */ public class FilePreviewPane extends JPanel { - public FilePreviewPane(Image image) { + public FilePreviewPane(BufferedImage image) { + setLayout(new BorderLayout()); UILabel label = new UILabel(); - label.setOpaque(true); - label.setBackground(Color.white); - float scale = image.getWidth(null) / 380; - image = image.getScaledInstance(380, (int) (image.getHeight(null) / scale), Image.SCALE_SMOOTH); - label.setIcon(new ImageIcon(image)); + float widthScale = (AlphaFineConstants.RIGHT_WIDTH) / (float) image.getWidth(); + float heightScale = (AlphaFineConstants.CONTENT_HEIGHT) / (float) image.getHeight(); + Image showImage; + showImage = widthScale > heightScale? image.getScaledInstance((int) (image.getWidth() * heightScale), AlphaFineConstants.CONTENT_HEIGHT, Image.SCALE_SMOOTH) : image.getScaledInstance(AlphaFineConstants.RIGHT_WIDTH, (int) (image.getWidth() * widthScale), Image.SCALE_SMOOTH); + label.setIcon(new ImageIcon(showImage)); add(label); } }