2014-02-04 4 views
-1

Я хотел бы узнать об ошибке, которую я получаю. Я пытаюсь установить отдельные пиксели в jframe с классом bufferedimage, но по какой-то причине, когда я пытаюсь добавить их в фрейм, я получаю сообщение о том, что подходящий метод не найден.ошибка: не найдено подходящего метода для добавления (BufferedImage)

Вот мой код и ошибка, может кто-нибудь скажет мне, как добавить bufferedimage к кадру, пожалуйста.

import javax.swing.JFrame; 
import java.awt.image.BufferedImage; 

public class gui { 

    public static void main(String[] args) { 
    int width = 40; 
    int height = 80; 
    int[] data = new int [width * height]; 
    JFrame frame = new JFrame("gui"); 
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 
    image.setRGB(0, 0, width, height, data, 0, width); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.add(image); 
    frame.setSize(400, 400); 
    frame.setLocationRelativeTo(null); 
    frame.setVisible(true); 
    } 
} 

Ошибка:

gui.java:15: error: no suitable method found for add(BufferedImage) 
    frame.add(image); 
     ^
    method Container.add(Component,Object,int) is not applicable 
     (actual and formal argument lists differ in length) 
    method Container.add(Component,Object) is not applicable 
     (actual and formal argument lists differ in length) 
    method Container.add(Component,int) is not applicable 
     (actual and formal argument lists differ in length) 
    method Container.add(String,Component) is not applicable 
     (actual and formal argument lists differ in length) 
    method Container.add(Component) is not applicable 
     (actual argument BufferedImage cannot be converted to Component by method invocation conversion) 
    method Component.add(PopupMenu) is not applicable 
     (actual argument BufferedImage cannot be converted to PopupMenu by method invocation conversion) 
1 error 
+0

Не 100% реляционный, но он должен помочь вам ответить: http://stackoverflow.com/a/1065014/1786065. «ImageIcon», завернутый в «Контейнер», может быть другим маршрутом, однако он не протестировал его. – Rogue

+1

Ошибка сама по себе заключается в том, что, как указано, нет способа, который допускает этот тип объекта. – Rogue

ответ

1

Вы можете передать BufferedImage Ань ImageIcon, а затем передать ImageIcon к JLabel. Наконец, добавьте это JLabel, которое содержит только ваше изображение, как и любое другое JLabel.

1

Как уже указывалось сообщением об ошибке JFrame#add не определено для некомпонента, такого как BufferedImage. Вы могли бы сделать

frame.add(new JLabel(new ImageIcon(image))); 
Смежные вопросы