0

インターネットでブラウジングを行ったところ、以下に示すように、JFrame に複数の写真を表示する方法を示すこのコードが見つかりました。私ができるようにしたいのは、写真を選択して、ボタンをクリックして imgur にアップロードできるようにすることです。java を介して imgur にファイルをアップロードする方法は知っていますが、画像を 1 つ選択する方法がわかりません。誰でも解決策がありますか?

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);
}
}
4

2 に答える 2

1

画像の選び方がわかりません。

  • JListのインスタンスを使用してListSelectionModelその選択を管理します。デフォルトでは、リスト選択モデルでは、項目の任意の組み合わせを一度に選択できます。リストのメソッドを呼び出すことで、別の選択モード (つまり、単一項目の選択) を指定できます。setSelectionMode()

     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するよりも使用することをお勧めMouseListenerJListます。とは異なりMouseListener、シンプルでレベルが高く、他に 2 つの機能がevt.getFirstIndex()あり、evt.getLastIndex()非常に便利です。

チュートリアル リソース:

  1. リスト選択リスナーの書き方
于 2013-10-27T16:40:11.093 に答える