• ベストアンサー

JTextAreaを持ったJInternalFrameを作りたい

swingでメモ帳を作っているのですが、 新規作成が押されるごとに新しい JTextAreaを持ったJInternalFrameを作りたいのです。 他にもコピーやJpopupメニューなども機能として 追加しているのですがそれらの機能も新しく作った JInternalFrameで機能するようにしたいんです。 参考になるサイトなど見たりしたんですが 自力では無理でした。。どなたかお願いします☆ public class NotePad extends JFrame{ JDesktopPane desktop = new JDesktopPane(); static JTextArea editArea = new JTextArea(); static NotePad frame = new NotePad(); public static void main(String[] args){ frame.setTitle("メモ帳"); frame.setSize(500,400); frame.setVisible(true); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); } public NotePad(){ JScrollPane sp = new JScrollPane(editArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); NewAction newAction = new NewAction(); JMenuBar mb = new JMenuBar(); JMenu mn1 = new JMenu("ファイル"); mn1.add(newAction); mb.add(mn1); setJMenuBar(mb); getContentPane().add(sp, BorderLayout.CENTER); } class NewAction extends AbstractAction{ NewAction(){ putValue(NAME, "新規ファイル作成"); public void actionPerformed(ActionEvent e){ JInternalFrame inframe = new JInternalFrame( true, true, true, true); JTextArea ta = new JTextArea(""); JScrollPane sp2 = new JScrollPane(ta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); inframe.getContentPane().add(spane) desktop.add(inframe); inframe.setVisible(true); }

  • Java
  • 回答数3
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.3

>Jpopupメニューが追加できません。 >JtextAreaのtaの位置の関係でなかなかどの位置に >おけばよいかわからなくなってしまいました。 JPopupMenuのインスタンス作成をどこでどうやればわからなくなった、ということでしょうか。  いろいろ考え方がありますけど、ウィンドウごとに機能を用意したいのであれば内部フレームのクラス内で、全体で統一したメニューを用意したいのであればNotePadでJPopupMenuのフィールドを用意しておくのが良いでしょう。  ただし、ポップアップメニューを呼び出すためのマウス関係のイベントリスナー組み込みは内部クラスのコンストラクタで行っておかないといけないでしょう。 例えばですが。 ※NotePadクラスの処理 ・以下のフィールドを置く。 JPopupMenu popup; ・コンストラクタで以下の処理を追加する。 popup = new JPopupMenu(); JMenuItem pop1 = new JMenuItem("test"); // メニュー項目の例 popup.add(pop1); popup.add(cutAction); // メニュー項目の例 ・以下のメソッドを置く。 private void popupMenu(MouseEvent event) { if (event.isPopupTrigger()) { popup.show(event.getComponent(), event.getX(), event.getY()); } } ※内部クラス(NoteFrame)内の処理 ・コンストラクタでtaを作成した後、リスナーを登録する。 ta.addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent event) { popupMenu(event); } public void mouseReleased(MouseEvent event) { //popupMenu(event); } }); ・・こんな感じで、ポップアップのイベントの組み込みは内部フレーム側に、ポップアップメニューのインスタンスと、実際に呼び出されて実行される処理は外側のフレームクラス側においてはどうでしょうか。ちょっとあちこちに処理が分割してあまりきれいではありませんが・・。 他にもやりかたはいろいろあります。どこに置くのが一番後々便利か、考えて配置しましょう。 P.S. 本題の質問とは既に関係なくなってますから、こういうのは新たに質問を立てたほうがわかりやすいかも。

nilyannko
質問者

お礼

Kyon2_PaPaさんありがとうございます☆ 本当に助かりました!! >本題の質問とは既に関係なくなってますから、こういうのは新たに質問を立てたほうがわかりやすいかも。 そうですね、 さっ、、早速新たな問題が出てしまいました。 周りの人に聞いても解らないって言われてしまって 自分で解決しなければいけないと思うんですが。 情けない。。できないです

その他の回答 (2)

回答No.2

勘違いor的外れだったらごめんなさい。 >swingでメモ帳を作っているのですが、 >新規作成が押されるごとに新しい >JTextAreaを持ったJInternalFrameを作りたいのです。 新規作成が押されると JTextAreaを持ったJInternalFrameを 作りたいのですか??? 今作ってる「メモ帳」の新しいインスタンスを作って表示するんじゃなくて? 感覚的な例ですけど、例えば public class メモ帳{   public メモ帳(){     //コンストラクタ   }   public void actionPerformed(ActionEvent e){     …     //「新規作成」の場合     new メモ帳();     …   }   public static void main(String[] args){     メモ帳 memo = new メモ帳();   } } のような感じで。 違うのかな? (あまり深いこと考えてないのですが…)

nilyannko
質問者

お礼

みなさんありがとうございます。。 Kyon2_PaPaさん何度もありがとうございます!! なんとかできたんですが、 ta.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent event) { popupMenu(event); } public void mouseReleased(MouseEvent event) { popupMenu(event); } }); } private void popupMenu(MouseEvent event) { if (event.isPopupTrigger()) { popup.show(event.getComponent(), event.getX(), event.getY()); } } のJpopupメニューが追加できません。 JtextAreaのtaの位置の関係でなかなかどの位置に おけばよいかわからなくなってしまいました。

noname#49664
noname#49664
回答No.1

とりあえず、細かなところでいろいろ問題があるようですので、主な考え方だけ・・・。 ・まず、全体のウィンドウとなるJFrameを用意します。 ・その中にJDesktopPaneを入れます。 ・内部ウィンドウを作成するときは、このJDesktopPaneにJInternalFrameを入れます。 こういう構造になりますから、NotePadはextends JFrameしたほうが便利でしょう。そして、コンストラクタに、JDesktopPaneとJMenuBarによるメニューなどを組み込む処理をする。ここでは、内部フレームのクラスの作成に関する処理はしません。  内部フレームは、別途クラスとして定義します。ここで、スクロールバーだのテキストエリアだのを組み込む処理をします。  メニューバーにはそれぞれアクションのクラスを設定し、その中で、別途用意した内部フレーム用のクラスを新規に作成したり、現在選択されている内部フレームに対し処理を行うようなことをします。  現在選択されている内部フレームは、JDesktopPaneのgetSelectedFrameで得ることができます。 ざっと以下のような感じですので参考にしてみてください。(import関係は省略) public class NotePad extends JFrame { JDesktopPane desktop; public static void main(String[] args){ NotePad frame = new NotePad(); frame.setTitle("メモ帳"); frame.setSize(500,400); frame.setVisible(true); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); } public NotePad(){ desktop = new JDesktopPane(); NewAction newAction = new NewAction(); JMenuBar mb = new JMenuBar(); JMenu mn1 = new JMenu("ファイル"); mn1.add(newAction); mb.add(mn1); setJMenuBar(mb); CutAction cutAction = new CutAction(); JMenu mn2 = new JMenu("編集"); mn2.add(cutAction); mb.add(mn2); getContentPane().add(desktop,BorderLayout.CENTER); } // 新規作成の処理のクラス class NewAction extends AbstractAction{ NewAction(){ putValue(NAME, "新規ファイル作成"); } public void actionPerformed(ActionEvent e){ NoteFrame inframe = new NoteFrame(); inframe.setSize(300,200); desktop.add(inframe); inframe.setVisible(true); } } // カットの処理のクラス class CutAction extends AbstractAction{ CutAction(){ putValue(NAME, "カット"); } public void actionPerformed(ActionEvent e){ NoteFrame inframe = (NoteFrame)desktop.getSelectedFrame(); JTextArea ta = inframe.getTextArea(); // taを使ってカットの処理 System.out.println("Cut:" + ta.getSelectedText()); } } // これが内部フレームのクラス class NoteFrame extends JInternalFrame{ JTextArea ta; NoteFrame(){ ta = new JTextArea(""); JScrollPane sp = new JScrollPane(ta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); this.getContentPane().add(sp); } JTextArea getTextArea(){ return ta; } } } P.S. とりあえず、全角文字で書いてあるといったケアレスミスは取り除いた形でコードを掲載しましょう。

関連するQ&A

  • swingのラジオボタンについて

    たびたびすみません!! (1)ラジオボタンのアクションをどのように渡したらよいでしょうか? fontcolorActionをどこかにadd()しなければなりませんが group.add(fontcolorAction); button1.add(fontcolorAction); どちらもできません(泣 (2)setForeground()を使うと全部の文字の色が変換されてしまいます。選択した文字列の色や文字の大きさだけ変換するメソッドなどもないでしょうか?? (3)getContentPane().setBackground(Color.WHITE);を使うと表示されるウィンドウの中身が白色になると思うんですが薄紫色のままです。どうしたらよいでしょうか? public class NotePad3 extends JFrame { JDesktopPane desktop; JTextArea editArea = new JTextArea(); ButtonGroup group = new ButtonGroup(); JRadioButton button1 = new JRadioButton("black"); JRadioButton button2 = new JRadioButton("blue"); public static void main(String[] args){ NotePad3 frame = new NotePad3(); frame.setVisible(true); } public NotePad3(){ desktop = new JDesktopPane(); FontColorAction fontcolorAction = new FontColorAction(); JMenuBar mb = new JMenuBar(); JMenu sub11 = new JMenu("色"); group.add(button1); group.add(button2); sub11.add(button1); sub11.add(button2); getContentPane().add(desktop,BorderLayout.CENTER); getContentPane().setBackground(Color.WHITE); } class FontColorAction extends AbstractAction{ FontColorAction(){ } public void actionPerformed(ActionEvent e){ NoteFrame inframe = (NoteFrame)desktop.getSelectedFrame(); JTextArea ta = inframe.getTextArea(); if(e.getSource() == button1){ ta.setForeground(Color.black); }else if(e.getSource() == button2){ ta.setForeground(Color.blue); } } }

    • ベストアンサー
    • Java
  • JScrollPaneのオブジェクトは位置位置

    JScrollPaneについて、質問させて頂きます。 JScrollPaneに、JTextAreaを縦一列に配置したJPanelを追加しようとしたのですが、何故かJScrollPaneに配置すると、JPanel内のJTextAreaの配置が横一列になってしまいます。 つまり、現在は TEST1 TEST2 TEST3 TEST4....(JTextAreaを並べたJPanelです) となっているJScrollPaneを Test1 Test2 Test3 Test4 のように表示したいのです。 大学の授業に絡むコードですので全てを貼付けるとネットから拾ってきたのではと思われてしまうため、全ては貼付けられませんがコードの一部を張りつけさせて頂きます。 まずはJScrollPaneの設定ですが private JScrollPane getScroll() { if (scroll == null) { scroll = new JScrollPane(innerHomeTimeLine); scroll.setPreferredSize(new Dimension(width, height)); scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scroll.setWheelScrollingEnabled(true); } return scroll; } としてJScrollPaneを作成しています、innerHomeTimeLineはJTextAreaを縦一列に並べたJPanelです。 このJScrollPaneを this.add(getScroll(),BorderLayout.NORTH); でJPanelに追加し、そのJPanel(homeTimeLine)をthis.add(homeTimeLine,BorderLayout.CENTER); でJAppletに追加し、表示しています。 JPanel(innerHomeTimeLine)そのものをJAppletに追加すると縦一列に並んだまま表示出来るのは確認しているので、JScrollPaneの設定の問題だと思うのですが、どうすれば良いのでしょうか.... やり方をご存知の方がいましたら、解答して頂けると助かります、宜しくお願いします。 さすがにこのコードだけでは解答は無理、といったことでしたら、必要な部分を教えて頂ければ、抜き出して追記させて頂きます。

    • ベストアンサー
    • Java
  • addとremoveActionListener

    以下のプログラムは作っているプログラムの簡易版で、他のクラスからaddActionListenerを追加しようとしているですが、やり方が分かりません。 どうプログラミングすればいいか教えてください。 あと、removeActionListenerを使いたいのですが、これについて書かれているサイトが少なく、使い方がよくわからないので、こちらも教えて欲しいです。 import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; public class Test1 extends JFrame { public Test1(){ super("test1"); Set set=new Set(this); setBounds(100,100,806,659); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); add(set); JMenuBar menubar = new JMenuBar(); JMenu menu1=new JMenu("メニュー"); menubar.add(menu1); JMenuItem menuitem1=new JMenuItem("終了"); menu1.add(menuitem1); setJMenuBar(menubar); } public static void main(String[] args){ new Test1().setVisible(true); } } class Set extends JPanel{ Set(final JFrame frame){ /*ここにaddを入れたかった frame.menuitem1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ System.exit(0); } });*/ //removeActionListener 使用方法不明 } }

    • ベストアンサー
    • Java
  • javaのpaintについて

    public class Main extends JFrame{ public static void main(String args[]){ Main frame = new Main("test"); frame.setVisible(true); } Main(String title){ setTitle(title); setBounds(100, 100, 300, 250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuBar menubar = new JMenuBar(); JMenu menu1 = new JMenu("File"); menubar.add(menu1); JMenuItem menuitem1 = new JMenuItem("New"); menu1.add(menuitem1); setJMenuBar(menubar); } public void paint(Graphics g){ } } いまウィンドウにメニューバーを表示させようとして上のプログラムで実行させたんですが、画像のようにメニューバーが表示されません。 そこでpaintの引数を消してみたところ表示されます。 しかし、paint内で画像の表示の処理もしたいので引数がないといけません。 どうしたらいいでしょうか?

    • ベストアンサー
    • Java
  • メニューバーのプログラム

    javaで、メニューバーの項目を選んだら動作するプログラムを試しに組んでみようとしたのですがうまくいきません。 どう組めばいいか教えてください。 メニューバーの項目を選んだあとに出てくるメニューを選ぶと動作するプログラムは検索してすぐ出てくるのですが…。 下のプログラムはメニューバーのEndを押すと終了する、にならなかったプログラムです。 import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; class Test1 extends JFrame{ public static void main(String args[]){ Test1 frame = new Test1("タイトル"); frame.setVisible(true); } Test1(String title){ setTitle(title); setBounds(100, 100, 300, 250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JMenuBar menubar = new JMenuBar(); JMenu menu1 = new JMenu("End"); menu1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ System.exit(0); } }); menubar.add(menu1); setJMenuBar(menubar); Container contentPane = getContentPane(); } }

    • ベストアンサー
    • Java
  • テキストフィールドの文字をテキストエリアに表示する

    エラーも例外もないです。 但し今回の内容の"テキストフィールドに打ち込みエンターキーを文字をテキストフィールドに表示" が満たしてないですとりあえずソース乗せます mport java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class MyMemo { public static void main(String[] args) { JFrame Frame = new JFrame("課題"); Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Frame.setSize(500, 500); Frame.setLocationRelativeTo(null); Container contentPane = Frame.getContentPane(); // テキストフィールドのインスタンスを生成 final JTextField text = new JTextField();// テキストエリアのインスタンスを生成 text.addActionListener(new MyActionListener()); Frame.setVisible(true); final JTextArea Area = new JTextArea(5,0); // スクロールペインにテキストエリアを追加 JScrollPane scrollPane = new JScrollPane(Area); // パネルをコンポーネントに配置 contentPane.add(text, BorderLayout.NORTH); contentPane.add(scrollPane, BorderLayout.CENTER); Frame.setVisible(true); } static class MyActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { } } } どう文字をテキストエリアに表示したらいいのかわからなくて質問させていただきました。 よろしくお願いします。

    • ベストアンサー
    • Java
  • SwingでgetContentPaneのエラーです、お願いします

     今晩は、java勉強中のものです、宜しくお願いします。  下のようなプログラムを組んでみましたが、「型JFrameから非staticメソッドgetContentPane()にstatic参照 することは出来ません」というエラーコードです。  原因が良く分かりません、どなたか教えて下さい。  いくら考えても原因がよく分かりません、宜しくお願いします。 ================================================================ public class Panel_train extends JFrame{ public static void main(String[] args) { Container cnt = getContentPane(); JPanel jpanel = new JPanel(); JTextArea jtext = new JTextArea("Hello World", 100, 50); jpanel.add(jtext); cnt.add(jpanel, BorderLayout.CENTER); JFrame frame = new JFrame("テスト"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(200, 100); frame.setVisible(true); } }

    • ベストアンサー
    • Java
  • JTable で複数行の編集

    JTable で複数行の編集ができるようにしたいと思っています。 JTextArea を使う独自の CellEditor を作ることで、できました。 ただ、編集を開始するのにマウスでダブルクリックする必要があります。 セルにフォーカスがある状態で、キーボード入力で編集を開始できないでしょうか? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ JTextField を使った DefaultCellEditor はできます。 自作の JTextArea を使う CellEditor でもできました。 しかし、JScrollPane を付けるとできなくなります。 解決策をご存知の方がいらっしゃいましたら、よろしくお願いします。 public class TextAreaCellEditor extends AbstractCellEditor implements TableCellEditor { private JTextArea textArea = new JTextArea(); private JScrollPane scroll = new JScrollPane(textArea); public TextAreaCellEditor() { scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER); } public Object getCellEditorValue() { return textArea.getText(); } public boolean isCellEditable(EventObject anEvent) { if (anEvent instanceof MouseEvent) { return ((MouseEvent) anEvent).getClickCount() >= 2; } return true; } public boolean shouldSelectCell(EventObject anEvent) { return true; } public boolean stopCellEditing() { fireEditingStopped(); return true; } public void cancelCellEditing() { fireEditingCanceled(); } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { textArea.setText((value != null) ? value.toString() : ""); return scroll; // JScrollPane を付けなければ可能 // return textArea; } }

    • ベストアンサー
    • Java
  • スクロールバー

    Javaを始めたばかりの者です。 すごく基本的な質問をさせて頂きます。 恥ずかしいのですが、スクロールバーを付けようとしても付けることができませんでした。 以下がそのプログラムですが、どうすればよいか正直わかりません。よければ教えて下さい。 import java.awt.*; import javax.swing.*; public class ScrolTest { public JPanel panel =new JPanel(); public static void main (String[] argv) { JFrame frame =new JFrame("てすとー"); frame.setSize(50000,6000); Scrollbar scrollbar = new Scrollbar(); frame.add(scrollbar, null); scrollbar.setBounds(new Rectangle(220, 15, 15, 180)); frame.show(); } }

  • JTextAreaの文字列が表示されない

    閲覧ありがとうございます。 現在eclipseでjavaの勉強をしており、Apache POIを使ってエクセルの操作をしたいと思い以下のプログラムを組んでみたのですが、ボタンの方は上手く動作したのですがメニューの方が上手く動作しません・・・やりたい事は以下の通りです。 ・[ファイル]-[ファイルを作成]をクリックすると、保存ダイアログが表示され指定したディレクトリにtextAreaの内容が1行目、1列目のセルに表示されているxlsファイルを作成する また、ついでに教えて頂きたいのですが、WindowBuilderを使用しフレームの設計をする際、Button等各コンポーネントのアクセス修飾子はデフォルトだと全てprivateなのですが、この修飾子はプログラム中で変更しても問題無いでしょうか?WindowBuilderはつい最近使い始めたばかりでまだ慣れてないので・・・ 以下がソースです。開発環境はeclipse Indigo3.7で、WindowBuilderを使用しています。言語はJavaです。(字数オーバーしたので、import文は省略しています。 ■ExcelTest.java public class ExcelTest implements ActionListener { private JFrame frame; private JTextArea textArea; private JButton btnwo; private menu menu; public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { ExcelTest window = new ExcelTest(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } public ExcelTest() { initialize(); } private void initialize() { frame = new JFrame(); frame.setBounds(100, 100, 450, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); textArea = new JTextArea(); frame.getContentPane().add(textArea, BorderLayout.CENTER); btnwo = new JButton("ファイルを作成"); btnwo.addActionListener(this); frame.getContentPane().add(btnwo, BorderLayout.WEST); menu = new menu(); frame.getContentPane().add(menu, BorderLayout.NORTH); }       //ボタンの動作 // こちらは上手く動作する @Override public void actionPerformed(ActionEvent e) { JFileChooser chooser = new JFileChooser(); int selected = chooser.showSaveDialog(null); if (selected == JFileChooser.APPROVE_OPTION) { String path = chooser.getSelectedFile().getPath(); // パスを取得 System.out.println(path); // パスを表示 Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); // 1行目を作成 Cell cell = row.createCell(0); // 1行目の1列目にセルを作成 cell.setCellValue(getTextAreaText()); // テキストエリアの文字列を表示 try { FileOutputStream fo = new FileOutputStream(path + ".xls"); wb.write(fo); fo.close(); } catch (IOException e1) { e1.printStackTrace(); } } } public String getTextAreaText() { return textArea.getText(); // テキストエリアの文字列を取得 } } ■menu.java public class menu extends JPanel implements ActionListener { private static final long serialVersionUID = 1L; private JMenuItem menuItem; public menu() { setLayout(new BorderLayout(0, 0)); JMenuBar menuBar = new JMenuBar(); add(menuBar, BorderLayout.NORTH); JMenu menu = new JMenu("ファイル"); menuBar.add(menu); menuItem = new JMenuItem("ファイルを作成"); menuItem.addActionListener(this); menu.add(menuItem); } //メニューの動作 // こちらが上手く動作しない @Override public void actionPerformed(ActionEvent e) { JFileChooser chooser = new JFileChooser(); int selected = chooser.showSaveDialog(null); if (selected == JFileChooser.APPROVE_OPTION) { String path = chooser.getSelectedFile().getPath(); // パスを取得 System.out.println(path); // パスを表示 Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); // 1行目を作成 Cell cell = row.createCell(0); // 1行目の1列目にセルを作成 ExcelTest excel = new ExcelTest(); cell.setCellValue(excel.getTextAreaText()); try { FileOutputStream fo = new FileOutputStream(path + ".xls"); wb.write(fo); fo.close(); } catch (IOException e1) { e1.printStackTrace(); } } } }

    • ベストアンサー
    • Java

専門家に質問してみよう