Eclipse 实现 Java 编辑器【一】(制作GUI界面)

本文介绍了如何使用Eclipse实现一个简单的Java Swing GUI编辑器,涉及项目创建、包结构、GUI设计、事件监听和关键代码片段。通过一步步操作,学习者将掌握Java GUI编程的基础和实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 实验介绍

1. 实验内容

建立项目并完成 GUI 界面的编程实现。

2. 实验知识点

Java Swing

3. 完整代码

这里是引用

2. 项目文件结构

在这里插入图片描述

3. 实验步骤

1. 新建项目

首先请双击打开桌面上的 Eclipse ,等待它启动完成后,在文件菜单 File 中选择 New -> Project 来创建项目。
在这里插入图片描述
在弹出的新建项目对话框中选择 Java Project,并点击 Next 按钮进入下一步。
在这里插入图片描述
在弹出的窗口里填写项目的名称 MyEdit,然后点击 Finish 按钮。
在这里插入图片描述
如果遇到下图所示的对话框,点击 Open Perspective 按钮确认即可。
在这里插入图片描述

2. 创建包和类

本项目一共有两个类:

  • FileWindow:主要方法类,用作 GUI 界面以及逻辑功能的实现
  • Main:测试类

因此我们首先需要创建一个名为 com.shiyanlou.myedit 的包。

请在创建好的项目目录 src 文件夹上右键点击,然后选择 New -> Package

在这里插入图片描述
在弹出的 New Java Package 对话框中填写包名com.shiyanlou.myedit,并点击 Finish 按钮。
在这里插入图片描述
最后,在新建好的包下新建FileWindow和Main类。这里只演示创建 FileWindow 的过程。
在这里插入图片描述
在这里插入图片描述

3. GUI 界面的实现

GUI 界面的效果图如下:
在这里插入图片描述
界面的设计采用卡片布局(CardLayout),白色文本域为程序输入区,粉红色文本域为编译结果显示区,浅蓝色文本域为程序运行结果区。点击上方不同的功能按钮显示对应的文本域。

在 FileWindow 类中编写实现 GUI 的代码,相关的代码如下,代码的讲解将会以注释的形式进行,请在编写代码的同时留意相关的注释。

package com.shiyanlou.myedit;

import java.awt.CardLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class FileWindow extends JFrame implements ActionListener, Runnable {

    /*注意:因为实现了ActionListener 和Runnable接口,所以必须要实现这两个接口的方法。这里我们先把这两个方法简单实现以下。下节课将彻底完成这两个方法。*/

    Thread compiler = null;
    Thread run_prom = null;
    boolean bn = true;
    CardLayout mycard;  //声明布局,以后会用到
    File file_saved = null;
    JButton button_input_txt,   //按钮的定义
            button_compiler_text,
            button_compiler,
            button_run_prom,
            button_see_doswin;

    JPanel p = new JPanel();
    JTextArea input_text = new JTextArea(); // 程序输入区
    JTextArea compiler_text = new JTextArea();// 编译错误显示区
    JTextArea dos_out_text = new JTextArea();// 程序的输出信息

    JTextField input_file_name_text = new JTextField();
    JTextField run_file_name_text = new JTextField();

    public FileWindow() {
        // TODO Auto-generated constructor stub
        super("Java语言编译器");
        mycard = new CardLayout();
        compiler=new Thread(this);
        run_prom=new Thread(this);
        button_input_txt=new JButton("程序输入区(白色)");
        button_compiler_text=new JButton("编译结果区(粉红色)");
        button_see_doswin=new JButton("程序运行结果(浅蓝色)");
        button_compiler=new JButton("编译程序");
        button_run_prom=new JButton("运行程序");

        p.setLayout(mycard);//设置卡片布局
        p.add("input",input_text);//定义卡片名称
        p.add("compiler", compiler_text);
        p.add("dos",dos_out_text);
        add(p,"Center");

        compiler_text.setBackground(Color.pink); //设置颜色
        dos_out_text.setBackground(Color.cyan);
        JPanel p1=new JPanel();

        p1.setLayout(new GridLayout(3, 3)); //设置表格布局
        //添加组件
        p1.add(button_input_txt);
        p1.add(button_compiler_text);
        p1.add(button_see_doswin);
        p1.add(new JLabel("输入编译文件名(.java):"));
        p1.add(input_file_name_text);
        p1.add(button_compiler);
        p1.add(new JLabel("输入应用程序主类名"));
        p1.add(run_file_name_text);
        p1.add(button_run_prom);
        add(p1,"North");

        //定义事件
        button_input_txt.addActionListener(this);
        button_compiler.addActionListener(this);
        button_compiler_text.addActionListener(this);
        button_run_prom.addActionListener(this);
        button_see_doswin.addActionListener(this);


    }

    public void actionPerformed(ActionEvent e)
    {
         //实现方法

    }

    @Override
    public void run() {
        //实现方法
    }


    }

4. 测试类的实现

Main.java:

package com.shiyanlou.myedit;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        FileWindow win=new FileWindow();
        win.pack();
        win.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e)
            {
                System.exit(0);
            }
        });
        //设置窗口大小
        win.setBounds(200, 180,550,360);
        win.setVisible(true);
    }
}

4. 实验总结

在本次实验中,我们完成了项目的创建以及 GUI 界面
实现界面组件事件响应逻辑和 Java 文件的编辑、编译及运行。主要包括两个方法:

  • public void actionPerformed(ActionEvent e)
  • public void run()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在人间负债^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值