java - 通过 JPanel 获取 .gif 显示?

标签 java image jpanel display

我一直在尝试通过此类实现 JPanel 来打开图像。为什么我的代码不显示图像?它编译、运行、打开 Java,然后关闭它。

import java.awt.Graphics;
import javax.swing.JPanel;
import javax.swing.ImageIcon;

public class ImagePanel extends JPanel{

private ImageIcon coin;

public ImagePanel(){
    ImageIcon coin = new ImageIcon("coin.gif");
}

public void paintComponent(Graphics g){
    int x = 5;
    int y = 10;
    if(coin != null)
        coin.paintIcon(this, g, x, y);
}

public static void main(String[] args){
    ImagePanel window = new ImagePanel();
    window.setBounds(100, 100, 395, 355);       
    window.setVisible(true);
}
}

最佳答案

您的类扩展了 JPanel,它是一个 JComponent

为了显示您的 JComponent,您需要将其附加到 JFrame

您应该将 main 更改为

public static void main(String[] args)
{
    ImagePanel window = new ImagePanel();
    JFrame frame = new JFrame();
    frame.setBounds(100, 100, 395, 355);
    frame.setContentPane(window);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}

关于java - 通过 JPanel 获取 .gif 显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49046801/

相关文章:

java - 如何在一个类中顺序执行两个线程

java - Android 11 使用相机拍摄图像

java - 如何更改 Phidg​​et 传感器的数据速率?

css - 如何垂直对齐div内的图像

不同大小和语言的Android图片

java - Paint Component 在 Eclipse 之外不工作

java - Swing - JPanel背景颜色消失

java - 当面板透明时防止面板下方的组件悬停

java - 在 java 中使用常量 1 的位移位的优点

java - Android Studio newProject卡在gradle项目信息中