【问题标题】:Image thumbnail view/editor in JFrameJFrame 中的图像缩略图视图/编辑器
【发布时间】:2012-03-19 18:01:26
【问题描述】:

谁能建议我如何在一个选项卡中加载多个图像,然后单击特定图像后,它应该在另一个选项卡中打开以进行图像处理?

这是我的代码的一部分。相反,如果绘制图像我实际上需要打开加载图像并选择特定图像,它应该打开到其他选项卡。请建议我如何使用 jlist 或任何其他方式完成..

import javax.swing.*;
import java.awt.*;
import java.awt.Event.*;
import java.io.File;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.IOException;

public class SwindDesign {
public static void main(String[] args) throws IOException {
    JFrame frame = new JFrame("Split Pain");
    frame.setSize(700, 500);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLayout(new GridLayout());

    //panel
    JPanel panel = new JPanel();
    panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
    panel.add(new PicturePanel());

   JTabbedPane jtp = new JTabbedPane();

     jtp.addTab("Set Image", panel);
      jtp.addTab("Compare Image", new JButton());
      frame.add(jtp);

    }
}
class PicturePanel extends JPanel {

File folder = new File("C:/Documents and Settings/All Users/Documents/My Pictures/Sample Pictures");
File[] listOfFiles = folder.listFiles();
ImageIcon[] img ;
JComponent lblimg;
JTabbedPane jtp = new JTabbedPane();
private BufferedImage[] b = new BufferedImage[10];

public PicturePanel() throws IOException {
    for (int i = 0; i < listOfFiles.length; i++) {
        System.out.println("chek panth"+listOfFiles[i].getName().toString());
        b[i] = ImageIO.read(new File("C:/Documents and Settings/All Users/Documents/My Pictures/Sample Pictures/" + listOfFiles[i].getName().toString()));
    }
}

@Override
protected void paintComponent(Graphics g) {
    super.paintComponents(g);
    Graphics2D g2 = (Graphics2D) g;
    int k = 10;
    for (int j = 0; j < listOfFiles.length - 1; j++) {
        g2.drawImage(b[j], k, 0, 100, 100, null);
        k = k + 75;
        }
    }
}

【问题讨论】:

  • 我可以使用 imageicon 和 jlable 在缩略图中加载多个图像,但这样做我无法得到我需要的东西。我正在开发一个图像处理应用程序显示需要在缩略图中显示多个文件夹图像,单击它应该在其他选项卡中打开以对其进行处理..

标签: java swing image-processing thumbnails


【解决方案1】:

谁能建议我如何加载多个..

使用循环。

..图像..

使用ImageIO.read(File/URL/InputStream)

在标签上..

JPanel 添加到具有合适布局的选项卡中,例如FlowLayoutGridLayout。将图片放入未修饰的JButton 并添加到面板中。

..点击特定图片后..

在按钮上添加ActionListener

..它应该打开另一个选项卡进行图像处理。

JTabbedPane.addTab("image name", imageEditorComponent)

【讨论】:

  • 你好,现在我还有一个小问题。我需要同时单击两个图像以进行比较,我的意思是这两个单击的图像应该在另一个选项卡中打开以进行比较,您能否建议我如何解决这个问题?
  • 使用JList 显示原始图像。将ListSelectionListener 添加到列表中。可能在JToolBar 中添加列表下方的按钮(编辑、比较等)。在侦听器中收到ListSelectionEvent 时,获取int numSelect = list.getSelectedIndices()。如果numSelect==2,启用编辑和比较。如果数字为 0,则禁用两者。如果有,只启用编辑。
  • 谢谢,但由于我是 java 开发的新手,我从来没有像我使用过 jlist 一两次那样使用 JList,但从来没有显示多个图像。所以请给我提示,我如何使用 JList 显示多个图像?
  • 为什么不问一个新问题并发布一个SSCCE你的最佳尝试?
  • 安德鲁请教我如何使用 jlist 显示图像?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-14
  • 2010-11-13
  • 2023-03-10
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
相关资源
最近更新 更多