繁体   English   中英

如何将图像添加到JFrame

[英]How to add an Image to a JFrame

我正在尝试将图像添加到JFrame并设置其位置,我不知道为什么它不添加到图像中,也许我不明白JFrame类的工作原理,因为普通文本JLabel添加到了JFrame完全没有任何麻烦,并且包含图像的JLabel根本不会添加。

如果有人会解释代码中的错误,甚至可能给我简短解释为什么我的方法行不通,我将不胜感激。 谢谢!

import java.awt.*;
import javax.swing.*;

public class Walk {
    public static void main(String[] args) {
        JFrame f = new JFrame("Study");
        f.setSize(3000,1000);
        f.getContentPane().setBackground(Color.white);
        f.getContentPane().add(new JLabel("test", JLabel.CENTER) );
        JLabel l = new JLabel(new ImageIcon("C:\\Users\\leguy\\OneDrive\\Desktop\\Stuff\\stillsp"));
        l.setBounds(100, 100, 100, 100);
        l.setVisible(true);
        f.add(l);
        f.setVisible(true);
    }
}
  1. 您是在使用gui类还是将其代码编写到主类中
    什么是你的代码是你写的代码,这样简单的方法是只需拖放尝试此链接正常jframes GUI 蚀GUI

关于将图片放入jframe的操作很容易,所有您需要做的就是1.通过拖放仅在jframe上设置其大小来创建标签2.跟随图片 在此处输入图片说明

  1. 然后您浏览所需的图片 在此处输入图片说明

  2. 选择图片并完成
    在此处输入图片说明

希望能帮助到你

确保图像路径有效。 我所做的只是指向PC上的有效映像,并且该代码实际上有效。 下面添加并组织了一些内容。

import java.awt.Color;
import javax.swing.*;

public class Walk {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() { // Safety first...
            @Override
            public void run() {
                String path = "C:\\Path\\To\\Image.png"; // Make sure it's correct
                JFrame frame = new JFrame("Study");
                JLabel label = new JLabel(new ImageIcon(path));

                frame.setSize(3000, 1000);
                frame.getContentPane().setBackground(Color.white);
                frame.getContentPane().add(new JLabel("test", JLabel.CENTER));

                label.setBounds(100, 100, 100, 100);
                label.setVisible(true);

                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.add(label);
                frame.pack(); // Pack the frame's components.
                frame.setVisible(true);
            }
        });
    }
}

为了确保同时显示两个标签,请提供一个布局并相应地添加它们。

import java.awt.*;
import javax.swing.*;

public class Walk {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                String path         = "C:\\Path\\To\\Image.png"; // Make sure it's correct
                JFrame frame        = new JFrame("Study");
                Container container = frame.getContentPane();
                JLabel imageLbl     = new JLabel(new ImageIcon(path));
                JLabel textLbl      = new JLabel("test");

                frame.setLayout(new BorderLayout());
                frame.setSize(3000, 1000);

                imageLbl.setBounds(100, 100, 100, 100);
                imageLbl.setVisible(true);

                container.setBackground(Color.WHITE);
                container.add(textLbl, BorderLayout.NORTH);
                container.add(imageLbl, BorderLayout.CENTER);

                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM