How can I display a BufferedImage in a JFrame?

前端 未结 4 1156
失恋的感觉
失恋的感觉 2020-12-10 03:10

I want to display variations of the same image in the same JFrame, for example display an image in JFrame, then replace it with gray scale of the same image.

相关标签:
4条回答
  • 2020-12-10 03:21

    Just incase life's to short too read the official docs here's a dirty way to get it done multiple times over

    private static JFrame frame;
    private static JLabel label;
    public static void display(BufferedImage image){
       if(frame==null){
           frame=new JFrame();
           frame.setTitle("stained_image");
           frame.setSize(image.getWidth(), image.getHeight());
           frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
           label=new JLabel();
           label.setIcon(new ImageIcon(image));
           frame.getContentPane().add(label,BorderLayout.CENTER);
           frame.setLocationRelativeTo(null);
           frame.pack();
           frame.setVisible(true);
       }else label.setIcon(new ImageIcon(image));
    }
    
    0 讨论(0)
  • 2020-12-10 03:23

    You will have to repaint the JFrame whenever you update the image.

    Here is what a simple google on the topic brings up: (I use those tutorials for all my Java coding)

    Java Tutorial: Drawing an Image

    0 讨论(0)
  • 2020-12-10 03:24

    To build on camickr's solution (for the lazy like me who want quick code to copy/paste) here's a code illustration:

    JFrame frame = new JFrame();
    frame.getContentPane().setLayout(new FlowLayout());
    frame.getContentPane().add(new JLabel(new ImageIcon(img)));
    frame.getContentPane().add(new JLabel(new ImageIcon(img2)));
    frame.getContentPane().add(new JLabel(new ImageIcon(img3)));
    frame.pack();
    frame.setVisible(true);
    //frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // if you want the X button to close the app
    
    0 讨论(0)
  • 2020-12-10 03:33

    I'm not really sure what you question is but if you have a BufferedImage then you simply create an ImageIcon using the image, then you add the icon to a JLabel and add the label to the GUI like any other component.

    If you question is about how to create a gray scale, the I suggest you search the web using those terms as the search keywords, I'm sure you will find examples out there.

    0 讨论(0)
提交回复
热议问题