1,GUI+异常处理+文件=》简易记事本(面向对象实现)
面向对象其实就可以把一个函数用类和对象实现,把传给函数的值传给类的构造,并执行函数
操作,实现功能。岂不美哉!
2,做项目首先想好思路,先实现基本功能再扩充再细化再优化,一步一步来不可多想逾越
1,GUI实现形态
2,文件实现功能(存储,写入,读出)
3,GUI实现创建文件
4,优化附加功能
5,用面向对象方式重写
6,变成.exe文件
面向对象其实就可以把一个函数用类和对象实现,把传给函数的值传给类的构造,并执行函数操作实现功能。岂不美哉!
****************************************************************************************************************************************************
GUI
package Try;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Gui extends JFrame implements ActionListener {
public static String s,s1;
JPanel jp=new JPanel();
JButton jb1=new JButton("文件");
JTextPane jtf=new JTextPane();
JMenuBar jm=new JMenuBar();
JMenu file=new JMenu("文件");
JMenu way=new JMenu("格式");
JMenu help=new JMenu("帮助");
JMenuItem open=new JMenuItem("打开");
JMenuItem new1=new JMenuItem("新建");
JMenuItem save=new JMenuItem("保存");
JMenuItem color=new JMenuItem("颜色");
JMenuItem size=new JMenuItem("型号");
JMenuItem word=new JMenuItem("字形");
JMenuItem about=new JMenuItem("关于记事本");
JScrollPane scrollPane;
public Gui()
{this.setTitle("讷铮记事本");
this.setBounds(100,100,600,400);
this.setVisible(true);
this.add(jp);
jp.setLayout(null);
jp.add(jtf);
jtf.setBounds(5,22,575,370);
jtf.setSelectedTextColor(Color.RED);
/*
jtf.setLineWrap(true); //激活自动换行功能
jtf.setWrapStyleWord(true);
*/
jtf.setSelectionColor(Color.red);
jp.add(jm);
jm.setBounds(5,0,120,20);
jm.add(file);
jm.add(way);
jm.add(help);
file.add(open);
file.add(new1);
file.add(save);
way.add(color);
way.add(size);
way.add(word);
help.add(about);
open.addActionListener(this);
save.addActionListener(this);
new1.addActionListener(this);
color.addActionListener(this);
size.addActionListener(this);
word.addActionListener(this);
about.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
// 判断最初发生Event事件的对象
if (e.getSource() == save) {
// 获得容器
JFrame jf=new JFrame();
int i=0;
i=JOptionPane.showConfirmDialog(jf, "确定保存?","这是一个确认对话框",JOptionPane.OK_CANCEL_OPTION);
if(i==0)
{
System.out.println("已成功保存");
JFrame jf1=new JFrame();
s=JOptionPane.showInputDialog(jf1, "重命名","这是一个输入对话框",JOptionPane.INFORMATION_MESSAGE);
System.out.println(s);
s=s+".java";
s1=jtf.getText();
Save save1=new Save(s,s1);
save1.save();
JOptionPane.showMessageDialog(jf1,"保存成功","",JOptionPane.INFORMATION_MESSAGE);
}
if(i==1)
{
System.out.println("用户取消保存");
}
}
if(e.getSource()==open) {
String text="sssssssss";
JFrame jf1=new JFrame();
s=JOptionPane.showInputDialog(jf1, "文件名","这是一个输入对话框",JOptionPane.INFORMATION_MESSAGE);
System.out.println(s);
s=s+".java";
Open open1=new Open(s);
text=open1.open();
if(text==null)
{
JOptionPane.showMessageDialog(jf1,"此文件不存在","",JOptionPane.INFORMATION_MESSAGE);
}
else{
jtf.setText(text);
JOptionPane.showMessageDialog(jf1,"打开成功","",JOptionPane.INFORMATION_MESSAGE);
}
}
if(e.getSource()==new1)
{
String text="sssssssss";
JFrame jf1=new JFrame();
s=JOptionPane.showInputDialog(jf1, "请输入文件名","这是一个输入对话框",JOptionPane.INFORMATION_MESSAGE);
System.out.println(s);
if(text==null)
{
JOptionPane.showMessageDialog(jf1,"文件名不能为空","",JOptionPane.INFORMATION_MESSAGE);
}else
{
s=s+".java";
New1 new1=new New1(s);
new1.new1();
jtf.setText(null);
JOptionPane.showMessageDialog(jf1,"创建成功","",JOptionPane.INFORMATION_MESSAGE);
}
}
if(e.getSource()==about)
{
String text=" 讷铮记事本以该项目作者谢纳政的名字命名,功能参照于windows自带记事本,由java实现。2017年11月22日的一个中午,正在的复习"
+ "找工作的中国地质大学计算机学院大三学生谢纳政正好复习到java 文件和GUI部分,用记事本打开文件时突发奇想产生了模拟实现一个新的记事本的"
+ "想法,经过一个下午努力,完成了此工程的雏形。。。,鉴于作者水平有限,该工程尚有众多不足之处,望海涵!";
jtf.setText(text);
}
if(e.getSource()==color)
{
Select s=new Select();
}
if(e.getSource()==size)
{
SelectSize s=new SelectSize();
}
if(e.getSource()==word)
{
SelectWord s=new SelectWord();
}
}
}
总结:其实GUI一开始就是面向对象的方式实现,首先列举成员对象和成员变量,而后public 构造(),然后事件函数。
过程:1,引包,继承,接口
2,列举对象成员
3,构造函数对成员操作,先this,再jp,this的bounds是相对屏幕,组件的bounds是相对于jp
4,事件处理函数,每一个函数用一个类实现,就相当于以前的函数用类代替,传给函数的值传给了类的构造。
5,主函数引用类,各类组合到一起实现功能。
****************************************************************************************************************************************************
package Try;
import java.io.*;
public class Save {
public String name,text;
public Save(String s,String s1)
{
name=s;
text=s1;
}
public String getName()
{
return name;
}
public String getText()
{
return text;
}
public void save()
{
File f=new File("F:/textbook",name);
if(!f.exists())
{
try
{
f.createNewFile();
}catch(IOException e1)
{
}
}
try
{
FileWriter fw=new FileWriter(f,true);
try
{
fw.write(text);
}catch(Exception e5)
{
}
finally
{
fw.close();
}
}catch(Exception e6)
{
}
}
}
总结:文件的操作
1,对象传入值,赋值构造。
2,实现功能函数,即文件的存储
(注意事项,字符流的操作,注意新建文件,创建write,读写操作close()要在异常处理中)
3,引用对象及其功能函数
****************************************************************************************************************************************************
package Try;
import java.io.*;
public class Open {
String name;
String text="";
public Open(String s)
{
name=s;
System.out.println(name);
}
public String open()
{
File f=new File("F:/",name);
try
{
FileReader fr=new FileReader(f);
int s;
try
{
while(fr.ready())
{
s=fr.read();
text=text+(char)s;
System.out.println((char)s);
}
}catch(Exception e)
{
}
finally
{
fr.close();
}
}
catch(Exception e8)
{
}
return text;
}
}
****************************************************************************************************************************************************
package Try;
import java.io.IOException;
public class Main {
public static void main(String args[])throws IOException
{
Gui g=new Gui();
/* try
{
Thread.sleep(20000);
System.out.println(Gui.s);
System.out.println(Gui.s1);
File f=new File("F:/",s);
if(!f.exists())
{
try
{
f.createNewFile();
}catch(IOException e1)
{
}
}
FileWriter fw=new FileWriter(f,true);
try
{
fw.write(s1);
}catch(Exception e2)
{
}
finally
{
fw.close();
}
}catch(Exception e5)
{
}
finally
{
}
*/
}
}
****************************************************************************************************************************************************
新建
package Try;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class New1 {
public String name;
public New1(String s)
{
name=s;
}
public String getName()
{
return name;
}
public void new1()
{
File f=new File("F:/textbook",name);
if(!f.exists())
{
try
{
f.createNewFile();
}catch(IOException e1)
{
}
}
}
}
****************************************************************************************************************************************************
选择颜色
package Try;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Select extends JFrame implements ActionListener {
JPanel jp=new JPanel();
JButton jb1=new JButton("确认修改");
JMenuBar jm=new JMenuBar();
JMenu file=new JMenu("颜色选择");
JMenuItem red=new JMenuItem("红色");
JMenuItem org=new JMenuItem("橙色");
JMenuItem yel=new JMenuItem("黄色");
JMenuItem gre=new JMenuItem("绿色");
JMenuItem blue=new JMenuItem("蓝色");
JMenuItem bla=new JMenuItem("黑色");
public Select()
{
this.setTitle("颜色选择");
this.setBounds(300,300,200,100);
this.setVisible(true);
this.add(jp);
jp.setLayout(null);
jp.add(jb1);
jb1.setBounds(80,20,100,50);
jp.add(jm);
jm.setBounds(5,0,120,20);
jm.add(file);
jm.add(red);
jm.add(org);
file.add(yel);
file.add(gre);
file.add(blue);
file.add(bla);
file.add(red);
file.add(org);
red.addActionListener(this);
org.addActionListener(this);
yel.addActionListener(this);
gre.addActionListener(this);
blue.addActionListener(this);
bla.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
}
}
****************************************************************************************************************************************************
选择字号
package Try;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SelectSize extends JFrame implements ActionListener {
JPanel jp=new JPanel();
JButton jb1=new JButton("确认修改");
JMenuBar jm=new JMenuBar();
JMenu file=new JMenu("字号选择");
JMenuItem one=new JMenuItem("1");
JMenuItem two=new JMenuItem("2");
JMenuItem thr=new JMenuItem("3");
JMenuItem four=new JMenuItem("4");
JMenuItem five=new JMenuItem("5");
JMenuItem six=new JMenuItem("6");
public SelectSize()
{
this.setTitle("字号选择");
this.setBounds(300,300,200,100);
this.setVisible(true);
this.add(jp);
jp.setLayout(null);
jp.add(jb1);
jb1.setBounds(80,20,100,50);
jp.add(jm);
jm.setBounds(5,0,120,20);
jm.add(file);
file.add(one);
file.add(two);
file.add(thr);
file.add(four);
file.add(five);
file.add(six);
one.addActionListener(this);
two.addActionListener(this);
thr.addActionListener(this);
four.addActionListener(this);
five.addActionListener(this);
six.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
}
}
****************************************************************************************************************************************************
选择字体
package Try;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SelectWord extends JFrame implements ActionListener {
JPanel jp=new JPanel();
JButton jb1=new JButton("字形修改");
JMenuBar jm=new JMenuBar();
JMenu file=new JMenu("字型选择");
JMenuItem one=new JMenuItem("宋体");
JMenuItem two=new JMenuItem("正楷");
JMenuItem thr=new JMenuItem("微软雅黑");
JMenuItem four=new JMenuItem("行书");
JMenuItem five=new JMenuItem("隶书");
JMenuItem six=new JMenuItem("甲骨文");
public SelectWord()
{
this.setTitle("字号选择");
this.setBounds(300,300,200,100);
this.setVisible(true);
this.add(jp);
jp.setLayout(null);
jp.add(jb1);
jb1.setBounds(80,20,100,50);
jp.add(jm);
jm.setBounds(5,0,120,20);
jm.add(file);
file.add(one);
file.add(two);
file.add(thr);
file.add(four);
file.add(five);
file.add(six);
one.addActionListener(this);
two.addActionListener(this);
thr.addActionListener(this);
four.addActionListener(this);
five.addActionListener(this);
six.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
}
}

java GUI实现记事本相关推荐

  1. Java GUI程序示例

    Java GUI程序示例 与命令行界面相比,图形界面对于用户来说更为简便易用.图形用户界面(Graphical User Interface,简称 GUI),关于Java图形用户界面,可参见 http ...

  2. 编写运行最简单的java程序——使用记事本编写java程序

    编写运行最简单的java程序--使用记事本编写java程序 第一个java程序--使用记事本编辑 经过上篇文章的java环境搭建成功的小伙伴们可以在自己的计算机上编写属于自己的java程序了yo~ 还 ...

  3. 【毕设进行时-工业大数据,数据挖掘】Java GUI完善,左对齐

    正文之前 今天早上起来,因为还要在宿舍这边搞毕业信息确认,所以没办法,我就只能在宿舍里面做一下Java 的GUI的优化了! 很幸运的,思索一番之后,我发现了问题所在,并且很快的就解决了.就在我想要继续 ...

  4. java gui 结构_java gui教学图形界面的层次结构.ppt

    java gui教学图形界面的层次结构.ppt 还剩 13页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 事件 ...

  5. java 中gui的作用_java学习中最应该注意的Java GUI用户界面以何为基础

    java中的GUI编程(Graphic User Interface,图形用户接口),是在它的笼统窗(Abstract Window Toolkit,AWT)上完成的,java.awt是AWT的东西类 ...

  6. Java GUI:将JPanel添加进JScrollPane

    实现的目标: 因为在滚动框中含有很多个Java GUI 组件,因此这里采用JPanel面板包住这些组件,在用JScrollPane实现滚动 问题1:布局揉在一起 JPanel有自己默认的布局方式,因此 ...

  7. Java GUI 开发专题

    Java GUI 开发专题 IBM http://www.ibm.com/developerworks/cn/java/j-gui/#N10095 作者:wenhai_zhang 发表于2009-11 ...

  8. Java GUI应用程序关闭陷阱

    最近,我遇到了一个或两个Java GUI应用程序在关闭时无法关闭的问题. 它们似乎是一个过程,消耗着计算机资源. 今天,我深入探究了问题的根源,这是一个我以前从未意识到的棘手问题,所以我想我会分享一下 ...

  9. java gui介绍_IntelliJ IDE 开发Java GUI 入门

    原标题:IntelliJ IDE 开发Java GUI 入门 j主要对java 的GUI相关知识进行简单的介绍和总结,整个博客按照创建一个java GUI的顺序进行介绍,期间穿插讲解用到的java S ...

最新文章

  1. Android 简单实现订单模块类APP的物流详情页
  2. .net6给winform带来的新功能
  3. TCP/IP Model: Layers Protocol | What is TCP IP Stack?
  4. python和CSV
  5. HTC Desire试玩手记之四(GPS连不上)
  6. iMindMap12思维导图如何制作导图教程
  7. Java 基本数据类型的转换 Java 基础(二)
  8. 2020年运营版双端直播盒子APP带引导安装 QQ微信一键登录+多级分销+粉色系列
  9. unity全栈开发是什么意思_unity3D用什么语言开发好?
  10. 耗时两周手撸了一个 RPC 轮子,是驴子是马拉出来遛遛
  11. autojs 捕获异常并处理
  12. 方寸知识篇 - 集成电路制造技术(二)- 光刻
  13. revit 2021 r2(3D建筑信息模型构建软件)pjb 附安装教程
  14. 【bzoj3875】[Ahoi2014Jsoi2014]骑士游戏
  15. 基于FPGA的一维卷积神经网络CNN的实现(一)框架
  16. QuaggaJS在给定图像中定位条形码的工作原理
  17. 2022最新IntellJ IDEA的mall开发部署文档
  18. 春季高考 计算机模拟试题,春季高考试卷-天津市2016年春季高考计算机模拟试卷B.doc...
  19. python import 文件
  20. Python开发环境安装与配置(小白教程)

热门文章

  1. 市场调研-全球与中国在线软件文档工具市场现状及未来发展趋势
  2. python输出时间代码_Python获取世界多地时间怎么写代码呢?
  3. Python的自我修炼之路(一)
  4. Delphi中record的使用
  5. 实现物联网的技术要素
  6. 【读书笔记】提高编码效率 —— 《Mac 高效开发指南》
  7. 学习软件的一点心得体会
  8. 一款跨平台小巧的端口爆破工具
  9. 【19考研】计算机/软件等专业调剂信息集合!【完结版】
  10. 聊一聊前端图片懒加载背后的故事