質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

1211閲覧

Javaで、エキスプローラーを使って、ファイルを書き出したい。

akirasada1972

総合スコア41

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/10/29 20:08

エキスプローラーは、表示されるのですが、保存したいものなどの指定は、どのようにしたらよいのでしょうか?
エキスプローラー表示部分。

java

1 menuitem1_2.addActionListener(new ActionListener() { 2 public void actionPerformed(ActionEvent event) { 3 JFileChooser filechooser = new JFileChooser(); 4 5 int selected = filechooser.showOpenDialog(akira); 6 if (selected == JFileChooser.APPROVE_OPTION){ 7 File file = filechooser.getSelectedFile(); 8 label.setText(file.getName()); 9 }else if (selected == JFileChooser.CANCEL_OPTION){ 10 JLabel label = new JLabel("キャンセルされました"); 11 label.setForeground(Color.RED); 12 JOptionPane.showMessageDialog(akira, label); 13 }else if (selected == JFileChooser.ERROR_OPTION){ 14 JLabel label = new JLabel("エラー又は取消しがありました"); 15 label.setForeground(Color.RED); 16 JOptionPane.showMessageDialog(akira, label); 17 } 18 } 19 }); 20 21 menuitem1_3.addActionListener(new ActionListener() { 22 public void actionPerformed(ActionEvent event) { 23 JFileChooser filechooser = new JFileChooser(); 24 25 int selected = filechooser.showSaveDialog(akira); 26 if (selected == JFileChooser.APPROVE_OPTION){ 27 File file = filechooser.getSelectedFile(); 28 label.setText(file.getName()); 29 }else if (selected == JFileChooser.CANCEL_OPTION){ 30 JLabel label = new JLabel("キャンセルされました"); 31 label.setForeground(Color.RED); 32 JOptionPane.showMessageDialog(akira, label); 33 }else if (selected == JFileChooser.ERROR_OPTION){ 34 JLabel label = new JLabel("エラー又は取消しがありました"); 35 label.setForeground(Color.RED); 36 JOptionPane.showMessageDialog(akira, label); 37 } 38 } 39 }); 40

書き出したいファイル。

java

1class CreateWav implements ActionListener { 2 public void actionPerformed(ActionEvent event) { 3 AudioFormat frmt= new AudioFormat(44100,8,2,true,false); 4 AudioInputStream ais = new AudioInputStream( 5 new ByteArrayInputStream(Main.wave_data) 6 ,frmt 7 ,Main.wave_data.length); 8 9 try { 10 AudioSystem.write( 11 ais 12 ,AudioFileFormat.Type.WAVE 13 ,new File("test.wav")); 14 } 15 catch(Exception e) { 16 e.printStackTrace(); 17 } 18 } 19} 20

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/10/30 02:05 編集

用語の使い方の問題ですが、「エクスプローラー」と言うよりはWindowsが標準で用意しているファイル選択ダイアログボックスのことではないのでしょうか。「エクスプローラーでファイル書き込み? 何のことだろう??」とちょっと悩みました。>質問者さん
dodox86

2020/10/30 02:08

ですので、質問の主旨、本当に知りたいこととしては、 「ファイルの書き出しにあたり、JFileChooserで表示されるファイル選択ダイアログボックスを介して指定したファイル名を使うにはどうすればよいのか?」と言うことなのではないでしょうか。
akirasada1972

2020/10/30 05:05

エクスプローラを介して、wavファイルを保存したいのです。
m.ts10806

2020/10/30 05:08

質問は編集できます。
dodox86

2020/10/30 06:02

> エクスプローラを介して、wavファイルを保存したいのです。 一応コメントしておきますと、そのような機能がエクスプローラーにあるとはついぞ聞いたことがありません。Windowsのエクスプローラーとは、一般的には「Windows + E」キーの押下でも起動する、explorer.exe のファイル名で知られる基本のファイル操作プログラムを指します。
akirasada1972

2020/10/30 09:22

Wavファイルを、ファイル名、フォルダーを指定して保存したかったのです。
guest

回答1

0

自己解決

APPROVE_OPTIONに、以下のような記述をしたところ、無事、選択したいフォルダーに、選択したいファイル名で、選択したいファイルを、書き込むことができました。

java

1 menuitem1_4.addActionListener(new ActionListener() { 2 public void actionPerformed(ActionEvent event) { 3 4 JFileChooser filechooser = new JFileChooser(); 5 int selected = filechooser.showSaveDialog(akira); 6 if (selected == JFileChooser.APPROVE_OPTION){ 7 File file = filechooser.getSelectedFile(); 8 AudioFormat frmt= new AudioFormat(44100,8,2,true,false); 9 AudioInputStream ais = new AudioInputStream( 10 new ByteArrayInputStream(Main.wave_data) 11 ,frmt 12 ,Main.wave_data.length); 13 14 try { 15 AudioSystem.write( 16 ais 17 ,AudioFileFormat.Type.WAVE 18 ,new File(file.getParent(), file.getName())); 19 } 20 catch(Exception e) { 21 e.printStackTrace(); 22 } 23 }else if (selected == JFileChooser.CANCEL_OPTION){ 24 JLabel label = new JLabel("キャンセルされました"); 25 label.setForeground(Color.RED); 26 JOptionPane.showMessageDialog(akira, label); 27 }else if (selected == JFileChooser.ERROR_OPTION){ 28 JLabel label = new JLabel("エラー又は取消しがありました"); 29 label.setForeground(Color.RED); 30 JOptionPane.showMessageDialog(akira, label); 31 } 32 } 33 }); 34

投稿2020/10/31 08:55

akirasada1972

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問