请用Java是实现GUI示例代码,作用如下:让用户在输入一个文件名,然后单击open键可显示文件内容,文件内容以二进制形式显示在文本框内。用户可修改文件内容,单击save键可保存,然后将修改后的内容回...

这段代码展示了如何使用Java Swing库创建一个简单的GUI应用程序,该程序包含一个文件名输入框、一个打开按钮、一个保存按钮和一个文本区域用于显示文件内容。当用户点击'Open'按钮时,可以打开并显示指定文件的内容。如果用户尝试关闭窗口且内容已修改,程序会提示用户保存更改。此外,'Save'按钮允许用户保存当前在文本区域中的内容。
摘要由CSDN通过智能技术生成

以下是使用 Java 实现 GUI 的示例代码:

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class FileViewer extends JFrame implements ActionListener {
  private JTextField fileNameField;
  private JTextArea fileContentArea;
  private JButton openButton;
  private JButton saveButton;
  private File currentFile;

  public FileViewer() {
    // 创建文件名输入框和按钮
    fileNameField = new JTextField(20);
    openButton = new JButton("Open");
    openButton.addActionListener(this);

    // 创建文件内容显示区域和按钮
    fileContentArea = new JTextArea(20, 40);
    saveButton = new JButton("Save");
    saveButton.addActionListener(this);

    // 创建面板并添加组件
    JPanel panel = new JPanel();
    panel.add(new JLabel("Enter file name:"));
    panel.add(fileNameField);
    panel.add(openButton);
    panel.add(saveButton);

    // 设置窗口布局
    setLayout(new BorderLayout());
    add(panel, BorderLayout.NORTH);
    add(new JScrollPane(fileContentArea), BorderLayout.CENTER);

    // 设置窗口属性
    setTitle("File Viewer");
    setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        if (currentFile != null && fileContentArea.getText().equals(readFile(currentFile))) {
          dispose();
          System.exit(0);
        } else {
          int confirm = JOptionPane.showConfirmDialog(
            FileViewer.this, "Do you want to save the changes?", "Confirm",
            JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE);
          if (confirm == JOptionPane.YES_OPTION) {
            saveFile();
          } else if (confirm == JOptionPane.NO_OPTION) {
            dispose();
            System.exit(0);
          }
        }
      }
    });
    pack();
    setLocationRelativeTo(null);
    setVisible(true);
  }

  // 读取文件内容
  private String readFile(File file) {
    StringBuilder sb = new StringBuilder();
    try (BufferedReader br = new BufferedReader(new FileReader(file))) {
      String line;
      while ((line = br.readLine()) != null) {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值