Java 如何从JFrame中选择图像,然后将其上载到imgur?

Java 如何从JFrame中选择图像,然后将其上载到imgur?,java,swing,jlist,Java,Swing,Jlist,我在互联网上做了一些浏览,发现下面的代码显示了如何在JFrame中显示多张照片,如下所示。我希望能够做的是选择一张照片,并能够通过点击按钮将其上传到imgur。我知道如何通过java将文件上传到imgur,但我不知道如何选择一个图像。有人有办法吗 import java.awt.*; import java.awt.image.BufferedImage; import javax.swing.*; import java.io.File; import java.io.IOException

我在互联网上做了一些浏览,发现下面的代码显示了如何在JFrame中显示多张照片,如下所示。我希望能够做的是选择一张照片,并能够通过点击按钮将其上传到imgur。我知道如何通过java将文件上传到imgur,但我不知道如何选择一个图像。有人有办法吗

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

import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class ListView {

public static void main(String[] args) throws IOException {
    String path = "C:/Users/Photos";
    JFrame frame=new JFrame();
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

    File folder = new File(path);
    File[] listOfFiles = folder.listFiles();
    DefaultListModel listModel = new DefaultListModel();
    int count = 0;
    for (int i = 0; i < listOfFiles.length; i++)
    {
        System.out.println("check path"+listOfFiles[i]);
        String name = listOfFiles[i].toString();
        // load only JPEGs
        if ( name.endsWith("png") ) {
            ImageIcon ii = new ImageIcon(ImageIO.read(listOfFiles[i]));
            listModel.add(count++, ii);
        }
    }
    JList lsm=new JList(listModel);
    lsm.setVisibleRowCount(1);

    frame.add(new JScrollPane(lsm));

    frame.pack();
    frame.setVisible(true);
}
}
import java.awt.*;
导入java.awt.image.buffereImage;
导入javax.swing.*;
导入java.io.File;
导入java.io.IOException;
导入javax.imageio.imageio;
公共类列表视图{
公共静态void main(字符串[]args)引发IOException{
String path=“C:/Users/Photos”;
JFrame=新JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
文件夹=新文件(路径);
File[]listOfFiles=folder.listFiles();
DefaultListModel listModel=新的DefaultListModel();
整数计数=0;
for(int i=0;i
如果您需要获取列表中选定的内容,可以在事件处理程序中使用类似以下内容:

    ImageIcon selected = (ImageIcon)lsm.getSelectedValue();
    if(selected == null){
         // nothing selected
    }else{
         // something is selected
    }
我不知道如何选择一个图像

  • JList
    使用
    ListSelectionModel
    的实例来管理其选择。默认情况下,列表选择模型允许一次选择项目的任何组合。通过调用列表中的方法,可以指定不同的选择模式(即,单项选择)

     jList1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    
  • 为此,在使用
    JList
    的项目选择事件中,使用
    ListSelectionListener
    选择您的项目

     jList1.addListSelectionListener(new ListSelectionListener() {
    
            @Override
            public void valueChanged(ListSelectionEvent e) {
             JList jlist = (JList) e.getSource();
             Object curentSelectedObject = jlist.getModel().getElementAt(e.getFirstIndex());
             Object lastSelectedObject = jlist.getModel().getElementAt(e.getLastIndex());
            }
        });
    
使用
ListSelectionListener
比使用
MouseListener
JList
更可取。与
MouseListener
不同,它简单且级别更高,它还有另外两个功能
evt.getFirstIndex()
evt.getLastIndex()
,非常有用

教程资源:


  • 希望这有帮助!一个不言自明的标题是:如何从JList(而不是JFrame)中选择图像