如何使用Java中的FileDialog绘制图像

时间:2016-01-07 14:43:02

标签: java swing

需要在FileDialog图像中显示所选内容,但这可能不起作用。当我尝试选择图像时,会抛出异常javax.imageio.IIOException:无法创建ImageInputStream!

我认为问题出在getDirectory()中,但不知道如何修复。

public ImageShow() throws IOException {
    super("Pictures");
    setSize(1024,768);
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);

    JPanel buttonPanel = new JPanel(new FlowLayout());
    buttonOpen = new JButton("Open file");

    buttonPanel.add(buttonOpen);


    actions();
    fileDialog();
    add(buttonPanel);

    image = ImageIO.read(new File(fd.getDirectory()));
    imageLabel = new JLabel(new ImageIcon(image));
    buttonPanel.add(imageLabel);

}


public void fileDialog() {
    fd = new FileDialog(new JFrame(), "Choose file");
    fd.setVisible(true);
}




public void actions() {
    buttonOpen.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            fileDialog();
        }
    });

}

}

1 个答案:

答案 0 :(得分:1)

<?php
$id = $_POST['id'];
$tipo_bolsa = $_POST['tipo_bolsa'];
$titulo = $_POST['titulo'];
$imagen = $_POST['imagen'];
$descripcion = $_POST['descripcion'];
$categoria = $_POST['categoria'];

$fecha = $_POST['fecha'];

$sueldo = $_POST['sueldo'];

$idP = $_POST['idP'];

// I need imagen-ajax variable $src, to save it on image field

require('cone.php');
$con = Conectar();
$sql = 'INSERT INTO bolsa (id, tipo_bolsa, titulo, imagen, descripcion, categoria, fecha, sueldo) VALUES (:id, :tipo_bolsa, :titulo, :imagen, :descripcion, :categoria, :fecha, :sueldo)';
$q = $con->prepare($sql);
$q->execute(array(':id'=>$id, ':tipo_bolsa'=>$tipo_bolsa, ':titulo'=>$titulo, ':imagen'=>$imj, ':descripcion'=>$descripcion, ':categoria'=>$categoria, ':fecha'=>$fecha, ':sueldo'=>$sueldo));

目录不是图像!请改为使用 getFile()

  

获取此文件对话框的选定文件。如果用户选择了CANCEL,则返回的文件为空。

但正如我在评论中所说..

  

使用基于Swing的image = ImageIO.read(new File(fd.getDirectory())); 而不是基于AWT的JFileChooser

使用方法时一定要查阅avialable文档。