java - 网页图片在 jframe 中被裁剪

标签 java image swing user-interface jscrollpane

来自相机的图片(可通过直接 IP 地址访问,如“http://1111.11.11.1”) 已裁剪,适合我的最大屏幕尺寸。我添加了滚动条,但似乎没有影响。也许我需要以其他顺序实现它们,但我似乎不知道如何实现。 这是代码,由于我无法提供相机 IP,但我添加了一个相当大的图片的链接作为演示。

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import java.awt.BorderLayout;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JScrollPane;

public class ShowWebPic {
    private static JFrame frame;

    public static void main(String[] args){
        frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        BufferedImage image = null;
        try {
            URL url = new URL("http://wallpoper.com/images/00/40/86/79/galaxies-nebulae_00408679.jpg");
            image = ImageIO.read(url);}
        catch (IOException e) {e.printStackTrace();}
        JLabel lblimage = new JLabel(new ImageIcon(image));
        frame.addKeyListener(escape);
        frame.getContentPane().add(lblimage, BorderLayout.CENTER);
        JScrollPane pane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        frame.getContentPane().add(pane, BorderLayout.EAST);
        // frame.add(pane, BorderLayout.EAST); // tried this as well
        frame.pack();
        frame.setVisible(true);
        }   //end of show

     private static KeyListener escape = new KeyAdapter() {
          @Override
          public void keyTyped(KeyEvent e) {if (e.getKeyChar() == KeyEvent.VK_ESCAPE) {frame.dispose();}}};
}

代码本身可以独立运行并工作......只是不是我需要的方式:D

最佳答案

更改:

frame.getContentPane().add(lblimage, BorderLayout.CENTER);
JScrollPane pane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
    JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
frame.getContentPane().add(pane, BorderLayout.EAST);

致:

//frame.getContentPane().add(lblimage, BorderLayout.CENTER);
JScrollPane pane = new JScrollPane(lblimage, // add image to scroll-pane!
    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
    JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
frame.getContentPane().add(pane, BorderLayout.CENTER);

关于java - 网页图片在 jframe 中被裁剪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25032880/

相关文章:

performance - Canvas vs DOM——HTML5中最高效的图片展示方式是什么?

java - 如何将图像向左(或向右)移动?

jQuery 悬停链接交换图像

java - 使用库编译 Java 小程序

java - 如何设置 quartz 来触发工作并安排一周中的每一天?

java - 使用 Cardme Java 创建 VCard

java - 为 JComboBox 提供水平滚动条的可移植方法

java - 如何阻止 BasicArrowButton 展开以占用整个工具栏?

JAVA多屏

java - 如何区分指定的数据库不存在或者用户没有访问数据库的权限?