java - 无法在 jframe 内的 jscrollpane 中添加图像

标签 java swing

我正在尝试使用 jscroll Pane 将图像添加到我的 jframe 中。我尝试了一些方法,但图像仅出现在背景中。像这样的,下面的图像编辑器。

enter image description here

这是我的代码:

   private void initComponents(){
     jScrollPane1 = new javax.swing.JScrollPane();
     ImageImplement panel = new ImageImplement(new ImageIcon(mean.get(0)).getImage());
     jScrollPane1.add(panel); setVisible(true); setSize(400,400); setDefaultCloseOperation(EXIT_ON_CLOSE);
   }
   class ImageImplement extends JScrollPane { 
     private Image img; 
     public ImageImplement(Image img) { this.img = img;
     Dimension size = new Dimension(img.getWidth(null), img.getHeight(null)); 
     setPreferredSize(size);
     setMinimumSize(size);
     setMaximumSize(size); 
     setSize(size); 
     setLayout(null); } 
     public void paintComponent(Graphics g) { 
     g.drawImage(img, 0, 0, null); } 
     } 

最佳答案

不要扩展 JScrollPane 也不进行自定义绘制。

相反,您只需创建一个带有 ImageIconJLabel 即可。然后将标签添加到滚动 Pane ,并将滚动 Pane 添加到框架。

所以基本逻辑是:

ImageIcon icon = new ImageIcon(...);
JLabel label = new JLabel( icon );
JScrollPane scrollPane = new JScrollPane( label );
frame.add(scrollPane, BorderLayout.CENTER);

关于java - 无法在 jframe 内的 jscrollpane 中添加图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44119493/

相关文章:

java - 如何在我的 Eclipse 项目中导入 javax.servlet/jakarta.servlet API?

java - log4j 无法在 Spring Boot Rest api 中创建日志文件

Java Swing JTextArea 行号

Java 默认表单操作或按钮

java - 如何在 JEditorPane 中添加 Flash 支持

java - 文件未部署到 jar

Java Swing-GUI类不识别界面类

java - 为什么 Java 的 `.dateLastModified` 在某些 Windows 7 文件中会被截断?

java - 为什么 Java GUI JFrame 在不同的操作系统上大小不同?

java - JFrame 将用户选择保存到 .txt 文件?