17.21 (Hex editor)
Write a GUI application that lets the user enter a file name
in the text field and press the Enter key to display its hex
representation in a text area. The user can also modify the
hex code and save it back to the file.
Write a GUI application that lets the user enter a file name
in the text field and press the Enter key to display its hex
representation in a text area. The user can also modify the
hex code and save it back to the file.
import javafx.scene.input.KeyCode; import java.io.*; public class HexEditorPane extends FileViewerPane { protected File file; public HexEditorPane() { tfFilePath.setOnKeyPressed(e -> { if (e.getCode() == KeyCode.ENTER) loadFile(); }); btnSave.setOnAction(e -> save()); } private void loadFile() { file = new File(tfFilePath.getText()); try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(file), 25000)) { String s = ""; int r; while ((r = in.read()) != -1) s += Integer.toHexString(r); taContent.setText(s); } catch (FileNotFoundException ex) { System.out.println("Error: File not found! Try using an absolute path."); } catch (IOException ex) { System.out.println("Error reading file..."); } } private void save() { try (BitOutputStream out = new BitOutputStream(file)) { out.writeBit(taContent.getText()); } catch (IOException ex) { System.out.println("Error saving file.."); } } }
import javafx.application.Application; import javafx.scene.Scene; import javafx.stage.Stage; public class Exercise_21 extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { HexEditorPane pane = new HexEditorPane(); primaryStage.setScene(new Scene(pane)); primaryStage.show(); } }
No comments:
Post a Comment