导出时可选择保存目录
This commit is contained in:
@@ -452,19 +452,43 @@ public class ImageDotMarker extends JFrame {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
JFileChooser fileChooser = new JFileChooser();
|
||||||
sb.append("图片标记点坐标:\n");
|
fileChooser.setSelectedFile(new File("mark_points.txt"));
|
||||||
for (int i = 0; i < points.size(); i++) {
|
fileChooser.setFileFilter(new FileNameExtensionFilter("文本文件 (*.txt)", "txt"));
|
||||||
MarkPoint p = points.get(i);
|
|
||||||
sb.append(String.format("%d. %s: (%d, %d)\n", i + 1, p.name, p.x, p.y));
|
int result = fileChooser.showSaveDialog(this);
|
||||||
|
if (result == JFileChooser.APPROVE_OPTION) {
|
||||||
|
try {
|
||||||
|
File file = fileChooser.getSelectedFile();
|
||||||
|
if (!file.getName().toLowerCase().endsWith(".txt")) {
|
||||||
|
file = new File(file.getAbsolutePath() + ".txt");
|
||||||
}
|
}
|
||||||
|
|
||||||
JTextArea textArea = new JTextArea(sb.toString());
|
StringBuilder sb = new StringBuilder();
|
||||||
textArea.setEditable(false);
|
// 添加头部信息
|
||||||
JScrollPane scrollPane = new JScrollPane(textArea);
|
sb.append("# 图片标记点坐标导出\n");
|
||||||
scrollPane.setPreferredSize(new Dimension(300, 200));
|
if (currentImagePath != null) {
|
||||||
|
sb.append(String.format("# 来源图片: %s\n", new File(currentImagePath).getName()));
|
||||||
|
}
|
||||||
|
sb.append(String.format("# 导出时间: %s\n", new java.util.Date()));
|
||||||
|
sb.append("# ======================================\n\n");
|
||||||
|
|
||||||
JOptionPane.showMessageDialog(this, scrollPane, "标记点坐标", JOptionPane.INFORMATION_MESSAGE);
|
// 添加标记点数据
|
||||||
|
sb.append("序号,名称,X坐标,Y坐标\n");
|
||||||
|
for (int i = 0; i < points.size(); i++) {
|
||||||
|
MarkPoint p = points.get(i);
|
||||||
|
sb.append(String.format("%d,%s,%d,%d\n", i + 1, p.name, p.x, p.y));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 写入文件
|
||||||
|
java.nio.file.Files.write(file.toPath(), sb.toString().getBytes("UTF-8"));
|
||||||
|
|
||||||
|
JOptionPane.showMessageDialog(this, "标记点坐标导出成功!\n保存位置: " + file.getAbsolutePath());
|
||||||
|
updateStatusBar("已导出标记点坐标到文件");
|
||||||
|
} catch (IOException ex) {
|
||||||
|
JOptionPane.showMessageDialog(this, "导出失败: " + ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePointList() {
|
private void updatePointList() {
|
||||||
|
|||||||
Reference in New Issue
Block a user