MCPcopy Index your code
hub / github.com/10cks/fofaEX / loadFileIntoTable

Method loadFileIntoTable

src/main/java/plugins/FofaPlugin.java:238–309  ·  view source on GitHub ↗
(File file)

Source from the content-addressed store, hash-verified

236 }
237
238 public static void loadFileIntoTable(File file) {
239
240 // 重新设置表格头,以便新的渲染器生效
241 JTableHeader header = getjTableHeader(table);
242 table.setTableHeader(header);
243
244 adjustColumnWidths(table); // 自动调整列宽
245 JScrollPane scrollPane = new JScrollPane(table);
246
247 table.setRowHeight(24); // 设置表格的行高
248 table.setFillsViewportHeight(true);
249
250 panel.removeAll();
251 panel.add(scrollPane, BorderLayout.CENTER);
252
253 // 设置表格的默认渲染器
254 table.setDefaultRenderer(Object.class, new SelectedCellBorderHighlighter());
255
256 try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
257 String line;
258 List<Map<String, Object>> data = new ArrayList<>();
259 Vector<String> columnNames = new Vector<>();
260 boolean columnsDefined = false;
261
262 while ((line = reader.readLine()) != null) {
263 line = line.trim();
264 if (!line.isEmpty()) {
265 try {
266 JsonObject jsonObject = JsonParser.parseString(line).getAsJsonObject();
267 Map<String, Object> map = new LinkedHashMap<>();
268
269 for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet()) {
270 String key = entry.getKey();
271 Object value = entry.getValue().getAsString();
272 map.put(key, value);
273
274 if (!columnsDefined) {
275 columnNames.add(key);
276 }
277 }
278 data.add(map);
279 columnsDefined = true;
280 } catch (JsonSyntaxException ex) {
281 ex.printStackTrace();
282 JOptionPane.showMessageDialog(null, "Execute Failed!", "JSON Error", JOptionPane.ERROR_MESSAGE);
283 return;
284 }
285 }
286 }
287
288 Vector<Vector<Object>> dataVector = new Vector<>();
289 for (Map<String, Object> datum : data) {
290 Vector<Object> row = new Vector<>();
291 for (String columnName : columnNames) {
292 row.add(datum.get(columnName));
293 }
294 dataVector.add(row);
295 }

Callers 2

actionPerformedMethod · 0.95
checkMakeFileMethod · 0.95

Calls 2

getjTableHeaderMethod · 0.80
adjustColumnWidthsMethod · 0.80

Tested by

no test coverage detected