为了账号安全,请及时绑定邮箱和手机立即绑定

Java SWT 文件保存

Java SWT 文件保存

回首忆惘然 2021-08-13 16:55:59
我在保存文件时遇到了问题,因为我已经搜索过,我写的很好,除了一件事,文件没有真正创建。缺少什么?        Button btnExport = new Button(composite_1, SWT.NONE);    btnExport.addSelectionListener(new SelectionAdapter() {        @Override        public void widgetSelected(SelectionEvent e) {            FileDialog fileSave = new FileDialog(pmComp, SWT.SAVE);            fileSave.setFilterNames(new String[] {"CSV"});            fileSave.setFilterExtensions(new String[] {"*.csv"});            fileSave.setFilterPath("c:\\"); // Windows path            fileSave.setFileName("your_file_name.csv");            fileSave.open();            System.out.println("File Saved as: " + fileSave.getFileName());        }    });    btnExport.setBounds(246, 56, 75, 40);    btnExport.setText("Export");
查看完整描述

3 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

从FileDialog:


此类的实例允许用户浏览文件系统并 选择或输入文件名。


该对话框不会自行创建文件,您必须检索所选文件名,然后创建文件。


例如


String name = fileSave.getFileName();

File file = new File(name);

file.createNewFile();


查看完整回答
反对 回复 2021-08-13
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

FileDialog仅用于选择文件保存的位置。它并没有真正创建或写入文件-你必须这样做。


所以


String savePath = fileSave.open();


// TODO your code to write the file to savePath


查看完整回答
反对 回复 2021-08-13
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

import java.io.File;

import java.io.IOException;


import org.eclipse.swt.SWT;

import org.eclipse.swt.events.SelectionAdapter;

import org.eclipse.swt.events.SelectionEvent;

import org.eclipse.swt.layout.GridData;

import org.eclipse.swt.layout.GridLayout;

import org.eclipse.swt.widgets.Button;

import org.eclipse.swt.widgets.Composite;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.FileDialog;

import org.eclipse.swt.widgets.Shell;


public class Snippet {

    public static void main(String[] args) {


        Display display = new Display();

        Shell shell = new Shell(display);

        shell.setLayout(new GridLayout(1, false));


        Composite composite = new Composite(shell, SWT.NONE);

        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

        composite.setLayout(new GridLayout(1, false));


        Button btnExport = new Button(composite, SWT.NONE);

        btnExport.addSelectionListener(new SelectionAdapter() {

            @Override

            public void widgetSelected(SelectionEvent e) {


                FileDialog fileSave = new FileDialog(shell, SWT.SAVE);

                fileSave.setFilterNames(new String[] { "CSV" });

                fileSave.setFilterExtensions(new String[] { "*.csv" });

                fileSave.setFilterPath("C:\\"); // Windows path

                fileSave.setFileName("your_file_name.csv");

                String open = fileSave.open();

                File file = new File(open);

                try {

                    file.createNewFile();

                    System.out.println("File Saved as: " + file.getCanonicalPath());

                } catch (IOException e1) {

                    e1.printStackTrace();

                }

            }

        });

        btnExport.setBounds(246, 56, 75, 40);

        btnExport.setText("Export");


        shell.pack();

        shell.open();

        while (!shell.isDisposed()) {

            if (!display.readAndDispatch())

                display.sleep();

        }


    }

}


查看完整回答
反对 回复 2021-08-13
  • 3 回答
  • 0 关注
  • 174 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信