今天整理其他的博客,找到自己大学期间做的一个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设计的脚本语言。它允许用户编写...
内容概要:本文分别展示了TIOBE 2024年12月和IEEE Spectrum 2024年编程语言排行榜单,详尽列出各类编程语言当前的市场份额变化趋势以及各自的应用场景。从榜单可以看出Python持续领跑,在AI等多个领域表现出色;而...
Plant Simulation编程语言SimTalk 2.0官方说明 Plant Simulation编程语言SimTalk 2.0是Tecnomatix Plant Simulation软件中的一种编程语言,用于扩展模拟模型的功能和控制。SimTalk语言可以与物流对象和信息流对象...
工业机器人的编程语言是机器人技术领域的重要组成部分,随着工业机器人的发展,编程语言也在不断地发展和完善。机器人的编程主要可以分为示教编程、动作级编程语言和任务级编程语言三个层次。在开发这些机器人时,...
Java编程语言自诞生以来,因其独特的特性和强大的技术支撑,成为了计算机软件开发领域里应用广泛的编程语言。本文将详细探讨Java语言的主要特点,以及它在实际计算机软件开发中的应用。 首先,Java编程语言的特点是...
### PLC标准编程语言之一ST语言 #### 一、概述 结构化文本(Structured Text, ST)作为IEC 61131-3标准中定义的一种编程语言,为自动化控制系统提供了一种高级语言的编程方式。相较于传统的梯形图语言,ST具有更高...
仓颉编程语言语言规约.pdf
### 编程语言排行榜:2013年4月Tiobe编程语言排行榜解析 #### Tiobe编程语言排行榜简介 Tiobe编程语言排行榜是一项反映全球范围内编程语言流行度的重要指标,该榜单每月更新一次,旨在为开发者提供编程语言趋势的...
《编程语言原理(第10版)》是一本深入探讨编程语言设计与实现的经典教材,适合计算机科学专业学生以及对编程语言有深厚兴趣的开发者。本书涵盖了编程语言的基础概念、设计选择、语法结构以及实现机制等多个重要方面,...
### 单片机编程语言概览 #### 一、引言 随着电子技术的发展,单片机已经成为现代工业控制和消费电子产品中不可或缺的一部分。选择合适的编程语言对于开发高质量的单片机应用程序至关重要。本文旨在对比单片机领域的...
"自然语言和计算机编程语言的比较" 在计算机处理编程语言方面的巨大成功和在自然语言处理方面的举步维艰 形成了巨大的反差。这两种语言在外表上有很大差异,但是在实质上的确有不少相通或者互相对应的地方。自然...
四年专业英语单词快速记忆经验,一年时间精心打造“编程语言快速记忆手册”,第一版的编程语言快速记忆手册,里面共收录了4345个和编程,计算机相关的英语单词,并给出了理解学单词里的,独特的英语单词快速记忆法。...
编程语言Python算法集大全 ,学习进步阶梯必备。编程语言Python算法集大全 ,学习进步阶梯必备。编程语言Python算法集大全 ,学习进步阶梯必备。编程语言Python算法集大全 ,学习进步阶梯必备。编程语言Python算法集...
编程语言的发展历程是一个充满创新和技术进步的精彩故事。自1614年以来,人类对计算机器的探索逐渐演变为现代编程语言的诞生。在远古时代,即1614年至1945年间,虽然没有真正的编程语言,但John Napier提出的计算...
本文主要探讨了在计算机软件安全开发过程中,如何有效地融入JAVA编程语言的技术和方法。由于信息技术的飞速发展,计算机软件在人们的生活中扮演着越来越重要的角色,而软件的安全性成为了软件开发中极为重要的一环。...
mojo编程语言内容概要:本文以通俗易懂的语言介绍了Mojo编程语言,包括其特点、如何开始学习、编写第一个程序、理解变量、控制结构等基础知识。通过一个简单的例子,让读者能够快速上手Mojo编程,并介绍了相关的学习...
### 软件开发与编程语言 在当今数字化时代,软件开发与编程语言的重要性日益凸显。无论是企业级应用还是个人项目,都需要通过编程语言来构建软件解决方案。因此,理解和掌握编程语言及其应用变得至关重要。 #### ...