java - JPanel 中的图片

标签 java swing graphics

我正在尝试编写一个应用程序,我想在 Jpanel 上添加不同的图片。除了显示质量非常差的图像的 JPG 格式外,一切正常。 我是这样画的:

class draw extends Canvas 
{
    Dimension canvasSize = new Dimension(400, 400);
    String fileName;

    public void paint(Graphics g) 
    {       
        if(this.fileName!=null)
        {
            Toolkit toolkit = Toolkit.getDefaultToolkit();
            Image img = toolkit.getImage(fileName);
            g.drawImage(img, 0, 0, this);
        }                   
    }
    public void setFileName(String name)
    {
        this.fileName=name;
    }

    public Dimension getMinimumSize()
    {
        return canvasSize;  
    }

    public Dimension getPreferredSize()
    {   
        return canvasSize;
    }
}

有没有办法覆盖JPG格式?

最佳答案

这可能是因为您将图像拉伸(stretch)(或压缩)到 Canvas 的大小。 JPEG 图像在缩放时看起来不太好,尤其是在放大时。尝试使用与 Canvas 大小相同(或接近)的图像。您还可以从 Image 中获取 JPEG 的高度和宽度。类并以其原始尺寸显示它。孙氏Drawing an Image教程展示了如何执行此操作。

关于java - JPanel 中的图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2213193/

相关文章:

java - 并非所有组件都显示

opengl - 传递给几何着色器的顶点属性数据未正确设置

user-interface - 无障碍对比度与企业形象指南

java - 缓冲图像动画代码无法正确重画

java - 意外的AOP异常;嵌套异常是 java.lang.IllegalStateException : Unable to load cache item

java - Kafka 生产者/消费者在 kafka 节点故障后重新连接

java - JXTreeTable 上的固定列

java - 使用 swing 创建滑出工具面板

java - 检查表的初始ID(0)是否为空

java - 锁拆分与锁 strip 化