今天整理其他的博客,找到自己大学期间做的一个Swing版的记事本,很简单,但是觉得值得留个纪念,就贴这里了。
界面
如下:
源代码
如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.swing.JPopupMenu;
import javax.swing.border.CompoundBorder;
public class NotePad3 extends JFrame{
JFileChooser jfc=new JFileChooser(){
public boolean accept(File f) {
return f.isDirectory()||f.getName().endsWith(".txt")||f.isDirectory()||f.getName().endsWith(".java");
}
};
final JTextArea jta;
JPopupMenu jpm;
public NotePad3(){
final JFrame f=new JFrame("简易记事本");
jpm=new JPopupMenu();
f.setLocation(100,100);
f.setSize(400,450);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jta=new JTextArea();
f.add(new JScrollPane(jta));
JMenuBar jmb=new JMenuBar();
JMenu jm1=new JMenu("文件");
JMenu jm2=new JMenu("编辑");
JMenu jm3=new JMenu("关于");
final JMenuItem jmt1=new JMenuItem("新建");
final JMenuItem jmt2=new JMenuItem("打开");
final JMenuItem jmt3=new JMenuItem("保存");
final JMenuItem jmt4=new JMenuItem("退出");
final JMenuItem jmt5=new JMenuItem("复制");
final JMenuItem jmt6=new JMenuItem("剪切");
final JMenuItem jmt7=new JMenuItem("粘贴");
final JMenuItem jmt9=new JMenuItem("全选");
final JMenuItem jmt8=new JMenuItem("信息");
jm1.add(jmt1);//新建
jmt1.setToolTipText("用于重新建立文本");
jmt1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jta.setText("");
}
});
jm1.add(jmt2);//打开
jmt2.setToolTipText("请打开文件");
jmt2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int result=jfc.showOpenDialog(NotePad3.this);
// FileDialog fd=new FileDialog(f, "请打开文件", FileDialog.LOAD);
// fd.setVisible(true);
if(result!=jfc.APPROVE_OPTION)return;
try{
FileInputStream fis=new FileInputStream(jfc.getSelectedFile());
byte[] buf=new byte[10*1024];
int len=fis.read(buf);
jta.append(new String (buf,0,len));
fis.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
});
jm1.add(jmt3);//保存
jmt3.setToolTipText("保存当前文本");
jmt3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int save=jfc.showSaveDialog(NotePad3.this);
//FileDialog fd=new FileDialog(f,"请保存文件",FileDialog.SAVE);
//String filestr=fd.getDirectory()+fd.getFile();
//fd.setVisible(true);
if(save!=jfc.APPROVE_OPTION)return;
//if(filestr!=null)
try{
FileWriter fw=new FileWriter(jfc.getSelectedFile());
fw.write(jta.getText());
fw.close();
}
catch(Exception ee){
ee.printStackTrace();
}
}
});
jm1.add(jmt4);//退出
jmt4.setToolTipText("退出本程序");
jmt4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
jm2.add(jmt5);//复制
jmt5.setToolTipText("复制文本");
jmt5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jta.copy();
}
});
jm2.add(jmt6);//剪切
jmt6.setToolTipText("剪切选中文本");
jmt6.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jta.cut();
}
});
jm2.add(jmt7);//粘贴
jmt7.setToolTipText("粘贴文本");
jmt7.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jta.paste();
}
});
jm2.add(jmt9);//全选
jmt9.setToolTipText("选中当前全部文本");
jmt9.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jta.selectAll();
}
});
jm3.add(jmt8);//信息
jmt8.setToolTipText("查看记事本信息");
jmt8.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"简易记事本,凯尔特制作");
}
});
//针对弹出菜单进行设置(重复较多)
JMenuItem jmt10=new JMenuItem("复制");
jmt10.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jta.copy();
}
});
JMenuItem jmt11=new JMenuItem("剪切");
jmt11.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jta.cut();
}
});
JMenuItem jmt12=new JMenuItem("粘贴");
jmt12.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jta.paste();
}
});
JMenuItem jmt13=new JMenuItem("全选");
jmt13.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
jta.selectAll();
}
});
JMenuItem jmt14=new JMenuItem("关于");
jmt14.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"简易记事本,凯尔特制作");
}
});
jpm.add(jmt10);
jpm.add(jmt11);
jpm.add(jmt12);
jpm.addSeparator();
jpm.add(jmt13);
jpm.addSeparator();
jpm.add(jmt14);
jta.addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent eee){
Tanchu(eee);
}
});
jmb.add(jm1);
jmb.add(jm2);
jmb.add(jm3);
f.setJMenuBar(jmb);
f.setVisible(true);
}
//弹出菜单设置
private void Tanchu(MouseEvent eee){
if(eee.isPopupTrigger()){
jpm.show(jta,eee.getX(),eee.getY());
}
}
public static void main(String args[]){
NotePad3 np2=new NotePad3();
}
}
文件名:NotePad3.java
- 大小: 10.7 KB
分享到:
相关推荐
"自制编程语言相关资料" 本资源摘要信息是关于自制编程语言的相关资料,涵盖了编程语言的设计、实现和使用等方面。下面是从给定的文件中提取的知识点: 编程语言设计 * 编程语言的设计是指根据一定的规则和规范...
根据提供的标题“编程语言原理(第10版)”及描述“编程语言原理(第10版 编程语言原理)”,我们可以推断出这本书主要讲述了编程语言的基础理论与实践应用,是学习和理解编程语言设计与实现的重要参考资料。...
为了适应这种情况,Zemax提供了一种专有的编程语言——Zemax编程语言(ZPL),让设计师们能够更深入地开发和利用Zemax软件。 Zemax编程语言(ZPL)是一种专门为光学设计软件Zemax设计的脚本语言。它允许用户编写...
"FX2N系列PLC基本指令及编程编程语言的特点" FX2N系列PLC基本指令是指FX2N系列Programmable Logic Controller(可编程逻辑控制器)的基本指令集,它们是PLC编程语言的基础。这些指令包括图形符号、梯形图语言和助记...
Plant Simulation编程语言SimTalk 2.0官方说明 Plant Simulation编程语言SimTalk 2.0是Tecnomatix Plant Simulation软件中的一种编程语言,用于扩展模拟模型的功能和控制。SimTalk语言可以与物流对象和信息流对象...
在探讨单片机编程语言的选择时,我们首先需要了解单片机编程语言的分类,以及它们各自的特点和适用场景。单片机编程语言主要可以分为三大类:机器语言、汇编语言和高级语言。 机器语言是最底层的编程语言,它由一...
仓颉编程语言语言规约.pdf
Java编程语言自诞生以来,因其独特的特性和强大的技术支撑,成为了计算机软件开发领域里应用广泛的编程语言。本文将详细探讨Java语言的主要特点,以及它在实际计算机软件开发中的应用。 首先,Java编程语言的特点是...
《编程语言原理(第10版)》是一本深入探讨编程语言设计与实现的经典教材,适合计算机科学专业学生以及对编程语言有深厚兴趣的开发者。本书涵盖了编程语言的基础概念、设计选择、语法结构以及实现机制等多个重要方面,...
四年专业英语单词快速记忆经验,一年时间精心打造“编程语言快速记忆手册”,第一版的编程语言快速记忆手册,里面共收录了4345个和编程,计算机相关的英语单词,并给出了理解学单词里的,独特的英语单词快速记忆法。...
编程语言Python算法集大全 ,学习进步阶梯必备。编程语言Python算法集大全 ,学习进步阶梯必备。编程语言Python算法集大全 ,学习进步阶梯必备。编程语言Python算法集大全 ,学习进步阶梯必备。编程语言Python算法集...
编程语言的发展历程是一个充满创新和技术进步的精彩故事。自1614年以来,人类对计算机器的探索逐渐演变为现代编程语言的诞生。在远古时代,即1614年至1945年间,虽然没有真正的编程语言,但John Napier提出的计算...
本文主要探讨了在计算机软件安全开发过程中,如何有效地融入JAVA编程语言的技术和方法。由于信息技术的飞速发展,计算机软件在人们的生活中扮演着越来越重要的角色,而软件的安全性成为了软件开发中极为重要的一环。...
mojo编程语言内容概要:本文以通俗易懂的语言介绍了Mojo编程语言,包括其特点、如何开始学习、编写第一个程序、理解变量、控制结构等基础知识。通过一个简单的例子,让读者能够快速上手Mojo编程,并介绍了相关的学习...
编程语言的演变是计算机科学史上的一个重要篇章,它揭示了技术如何从最初的原始形式发展到今天高度抽象和灵活的工具。让我们沿着这个时间线,深入探索编程语言的进化过程。 早在计算机诞生初期,程序员需要直接与...
器实现编程语言,而是泛指任何处理、分析、翻译输入文件的程序,比如配置文件读取器、数据读取器、模型驱动的代码生成器、源码到源码的翻译器、源码分析工具、解释器,以及诸如此类的工具。为此,作者举例讲解已有...
在IT领域,编程语言是构建软件、应用和服务的基础工具。编程语言集合涵盖了广泛的技术和工具,每种语言都有其特定的用途和优势。本资源包包含的两个文件,"JDBC API数据库编程实作教材ss.pdf" 和 "Testsadasd.rar",...
编程语言:应用和解释( PLAI)是由 Shriram Krishnamurthi编写的免费编程语言教科书。在30多所大学和几所高中使用。[ 引用需要 ] 这本书不同于大多数其他编程语言文本,试图结合两种不同风格的编程语言教育:一种是...
"编程语言演进的族谱"是一个深入探讨不同编程语言间血缘关系的主题。让我们一起揭开这神秘的面纱,揭示编程语言的家族历史。 首先,我们从早期的编程语言开始。FORTRAN(公式翻译)是最早被广泛使用的高级编程语言...