Как я могу отобразить BufferedImage в JFrame? - PullRequest
14 голосов
/ 26 октября 2009

Я хочу отобразить варианты одного и того же изображения в том же JFrame, например, отобразить изображение в JFrame, а затем заменить его серой шкалой того же изображения.

Ответы [ 3 ]

37 голосов
/ 09 февраля 2012

Чтобы построить решение camickr (для таких ленивых, как я, которые хотят быстро скопировать / вставить код), вот иллюстрация кода:

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
7 голосов
/ 26 октября 2009

Вам придется перекрашивать JFrame каждый раз, когда вы обновляете изображение.

Вот что выводит простой гугл по этой теме: (Я использую эти учебные пособия для всего моего Java-кодирования)

Учебник по Java: рисование изображения

3 голосов
/ 26 октября 2009

Я не совсем уверен, что вы спрашиваете, но если у вас есть BufferedImage, то вы просто создаете ImageIcon, используя изображение, затем вы добавляете значок в JLabel и добавляете метку в GUI, как любой другой компонент.

Если вы задаетесь вопросом о том, как создать шкалу серого, я предлагаю вам выполнить поиск в Интернете, используя эти термины в качестве ключевых слов для поиска, я уверен, что вы найдете примеры там.

...