Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将800x600图像放入jLabel中,而不必滚动查看整个图像_Java_Image_Jframe_Jlabel - Fatal编程技术网

Java 如何将800x600图像放入jLabel中,而不必滚动查看整个图像

Java 如何将800x600图像放入jLabel中,而不必滚动查看整个图像,java,image,jframe,jlabel,Java,Image,Jframe,Jlabel,我尝试过像GetScaleInstance这样的方法,但都不起作用。我也无法在网上找到任何解决方案。我当前使用的代码是: public class ShowImage_1 extends Panel { BufferedImage image; public ShowImage_1() { try { File input = new File("C:/Lighthouse.jpg"); image = Imag

我尝试过像GetScaleInstance这样的方法,但都不起作用。我也无法在网上找到任何解决方案。我当前使用的代码是:

public class ShowImage_1 extends Panel {

    BufferedImage image;

    public ShowImage_1() {
        try {
            File input = new File("C:/Lighthouse.jpg");
            image = ImageIO.read(input);
            image.getGraphics().drawImage(image, 0, 0, 400, 400, null);
        } catch (IOException ie) {
            System.out.println("Error:" + ie.getMessage());
        }
    }

    public void paint(Graphics g) {
        g.drawImage(image, 0, 0, null);
    }

    static public void main(String args[]) throws Exception {
        JFrame frame = new JFrame("Display image");
        Panel panel = new ShowImage_1();

        frame.getContentPane().add(panel);
        frame.pack();
        frame.setVisible(true);
    }
}
它不会在面板上显示完整图像。你知道怎么做吗

我想达到这个效果:

但我现在得到的是:


我还可以使用其他代码吗?

使面板足够大以容纳图像。。这可能会解决您的问题

将图像添加到JLabel。将标签添加到框架中。然后使用:

frame.pack();
不是


如果您需要更多帮助,请张贴演示问题的帖子

“不显示完整图像”是什么意思。面板和框架是否足够大?你能贴一张SSCCE吗?因为图像是从Matlab生成的,我无法控制大小。它太大了。我无法创建bigpublic类ShowImage_1扩展面板{BuffereImage;public ShowImage_1(){try{File input=new File(“C:/Lighthouse.jpg”);image=ImageIO.read(input);image.getGraphics().drawImage(image,0,0,400,400,null)}catch(IOIE异常){System.out.println(“错误:+ie.getMessage());}}}public void paint(图形g){g.drawImage(图像,0,0,null);}@Emily,将您的SSCCE添加到原始帖子,而不是评论区。
frame.setSize(800, 600);