17.20 (Binary 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 binary representation in a text area.
The user can also modify the binary 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 binary representation in a text area.
The user can also modify the binary code and save it back to the file
import javafx.scene.input.KeyCode; import java.io.*; public class BinaryEditorPane extends FileViewerPane { protected File file; public BinaryEditorPane() { 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 += getBits(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.."); } } private String getBits(int value) { String byteString = ""; for (int i = 7; i >= 0; i--) byteString += ((value >> i) & 1); return byteString; } }
import javafx.application.Application; import javafx.scene.Scene; import javafx.stage.Stage; public class Exercise_20 extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { BinaryEditorPane pane = new BinaryEditorPane(); primaryStage.setScene(new Scene(pane)); primaryStage.show(); } }
No comments:
Post a Comment