検索結果ファイル保存
患者検索画面で検索した結果をファイルに書き出せるようにした。検索結果リストで右クリックすると,結果を保存するメニューが出る。(//pns^ から //pns$ までが変更内容)
plugin/PatientSearchImpl.java
class ContextListener extends AbstractContextListener{ ・ ・ JCheckBoxMenuItem item = new JCheckBoxMenuItem("年齢表示"); contextMenu.add(item); item.setSelected(ageDisplay); item.addActionListener(EventHandler.create(ActionListener.class, PatientSearchImpl.this, "switchAgeDisplay")); //pns^ // 検索結果をファイル保存 if (view.getTable().getRowCount() > 0) { contextMenu.add(new JMenuItem(new ReflectAction("検索結果ファイル保存", PatientSearchImpl.this, "exportSearchResult"))); } //pns$ ・ ・ //pns^ /** * 検索結果をファイルに書き出す */ public void exportSearchResult() { JFileChooser fileChooser = new JFileChooser(); if (fileChooser.showSaveDialog(view) == JFileChooser.APPROVE_OPTION) { File file = fileChooser.getSelectedFile(); if (!file.exists() || isOverwriteConfirmed(file)) { try { FileWriter writer = new FileWriter(file); JTable table = view.getTable(); // 書き出す内容 StringBuilder sb = new StringBuilder(); for (int row = 0; row < table.getRowCount(); row++) { for (int column = 0; column < table.getColumnCount(); column++) { sb.append(column==0?"":','); sb.append('"'); sb.append(table.getValueAt(row, column)); sb.append('"'); } sb.append('\n'); } writer.write(sb.toString()); // close writer.close(); } catch (IOException ex) { System.out.println("PatientSearchImpl.java: " + ex); } } } } /** * ファイル上書き確認ダイアログを表示する。 * @param file 上書き対象ファイル * @return 上書きOKが指示されたらtrue */ private boolean isOverwriteConfirmed(File file){ String title = "上書き確認"; String message = "既存のファイル「" + file.toString() + "」\n" +"を上書きしようとしています。続けますか?"; int confirm = JOptionPane.showConfirmDialog( view, message, title, JOptionPane.WARNING_MESSAGE, JOptionPane.OK_CANCEL_OPTION ); if(confirm == JOptionPane.OK_OPTION) return true; return false; } //pns$
« OpenDolphin-1.3.0.3 公開(Java 1.6 専用) | トップページ | Magic Mouse 購入 »
「OpenDolphin」カテゴリの記事
- 運用17年目のまとめ(2025.02.03)
- IME on/off の切換 - その2(2024.12.02)
- OrcaController オルコン(2024.11.28)
- OpenDolphin: java 21 / wildfly 34 への移行(2024.11.08)
- IME on/off の切り替え(2024.09.03)