- 浏览: 732428 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
lingsuch:
Android网络连接判断与处理 -
月光照着我:
写的不错,作为笔记了
Android中LayoutInflater的使用 -
智博王锋:
好文章是要顶的!
Android中LayoutInflater的使用 -
云南白药:
...
Android中LayoutInflater的使用 -
万新one:
理解了许多。解释的不错。3Q.
Android中LayoutInflater的使用
package Assis; import java.io.*; import java.awt.*; import java.awt.event.*; import java.awt.datatransfer.*; import javax.swing.*; public class Note extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; JTextArea textArea = new JTextArea(); JMenuBar menuBar = new JMenuBar(); /** *文件菜单,新建,保存,另存为,退出选项** */ JMenu fileMenu = new JMenu("文件(F)"); JMenuItem newItem = new JMenuItem("新建(N)"); JMenuItem openItem = new JMenuItem("打开(O)..."); JMenuItem saveItem = new JMenuItem("保存(S)"); JMenuItem saveAsItem = new JMenuItem("另存为(A)..."); JMenuItem exitItem = new JMenuItem("退出(X)"); /* 编辑下拉菜单,以及全选,复制,剪切,粘贴等选项 */ JMenu editMenu = new JMenu("编辑(E)"); JMenuItem selectItem = new JMenuItem("全选(A)"); JMenuItem copyItem = new JMenuItem("复制(C)"); JMenuItem cutItem = new JMenuItem("剪切(T)"); JMenuItem pasteItem = new JMenuItem("粘贴(P)"); /* 格式下拉菜单,字体设置等选项 */ JMenu formatMenu = new JMenu("格式(O)"); JMenuItem changeRowItem = new JMenuItem("自动换行(W)..."); JMenuItem fontItem = new JMenuItem("字体(F)"); /* 帮助下拉菜单 */ String fileName = "未命名"; // 设置默认的文件名 Toolkit toolKit = Toolkit.getDefaultToolkit(); Clipboard clipBoard = toolKit.getSystemClipboard(); // 剪切板对象 获取系统 Clipboard // 的一个实例,该 Clipboard // 与本机平台提供的剪贴板工具相互作用。 /* 打开文件对话框和保存文件对话框 */ public FileDialog openFileDialog = new FileDialog(this, "Open File", FileDialog.LOAD); private FileDialog saveAsFileDialog = new FileDialog(this, "Sava File As", FileDialog.SAVE); public Note() { this.setTitle("无标题 - 记事本"); this.setFont(new Font("Times New Roman", Font.PLAIN, 12)); this.setBackground(Color.white);// 设置窗口背景颜色 this.setSize(700, 700); // 设置窗口大小 this.setJMenuBar(menuBar); // 添加menuBar this.add(textArea); // 添加textArea /* 在窗口中添加文件其下拉菜单 */ this.menuBar.add(fileMenu); // 添加"文件"菜单 this.fileMenu.add(newItem); // 添加"新建" this.newItem.setMnemonic('N'); // "新建"快捷键F this.fileMenu.addSeparator(); // 将新分隔符追加到菜单的末尾 this.fileMenu.add(openItem); // 添加"打开" this.openItem.setMnemonic('O'); // "打开"快捷键O this.fileMenu.addSeparator(); // 将新分隔符追加到菜单的末尾 this.fileMenu.add(saveItem); // 添加"保存" this.saveItem.setMnemonic('S'); // "保存"快捷键S this.fileMenu.add(saveAsItem); // 添加"另存为" this.saveAsItem.setMnemonic('A'); // "另存为"快捷键A this.fileMenu.addSeparator(); // 将新分隔符追加到菜单的末尾 this.fileMenu.add(exitItem); // 添加"退出" this.exitItem.setMnemonic('X'); this.newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK)); this.openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK)); this.saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK)); /* 在窗口中添加编辑其下拉菜单 */ this.menuBar.add(editMenu); // 添加"编辑"菜单 this.editMenu.setMnemonic('E'); // "编辑"快捷键 this.editMenu.add(copyItem); // 添加"复制" this.copyItem.setMnemonic('C'); // "复制"快捷键C this.editMenu.add(cutItem); // 添加"剪切" this.cutItem.setMnemonic('T'); // "剪切"快捷键T this.editMenu.add(pasteItem); // 添加"粘贴" this.pasteItem.setMnemonic('P'); // "粘贴"快捷键P this.copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK)); this.cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK)); this.pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK)); this.menuBar.add(formatMenu);// 添加"格式" this.formatMenu.add(changeRowItem); // 添加"自动换行" this.formatMenu.add(fontItem); // 添加"字体" /* 注册各个菜单项的事件监听器 */ this.newItem.addActionListener(this); this.openItem.addActionListener(this); this.saveItem.addActionListener(this); this.saveAsItem.addActionListener(this); this.exitItem.addActionListener(this); this.selectItem.addActionListener(this); this.copyItem.addActionListener(this); this.cutItem.addActionListener(this); this.pasteItem.addActionListener(this); this.fontItem.addActionListener(this); /* 指定窗口的退出方式 */ this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public void actionPerformed(ActionEvent e) { /* 利用事件源判断被点击的菜单项 */ Object eventSource = e.getSource(); /* 以下为新建文件 */ if (eventSource == newItem) { textArea.setText(""); this.setTitle("无标题 - 记事本"); } /* 以下为打开文件 */ else if (eventSource == openItem) { File theOpenFile; JFileChooser noteOpenChooser = new JFileChooser(); int num = noteOpenChooser.showOpenDialog(this); if (num == JFileChooser.APPROVE_OPTION) { try { theOpenFile = noteOpenChooser.getSelectedFile(); this.setTitle(theOpenFile.getName()); FileReader noteOpenReader = new FileReader(theOpenFile); BufferedReader noteOpenBufferd = new BufferedReader( noteOpenReader); String noteString; while ((noteString = noteOpenBufferd.readLine()) != null) { textArea.setText(noteString); } noteOpenReader.close(); noteOpenBufferd.close(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e2) { e2.printStackTrace(); } } } /* 以下为保存文件 */ else if (eventSource == saveItem) { File newFile = null; JFileChooser noteSaveChooser = new JFileChooser(); // 文件资源管理器组件JFileChooser int num2 = noteSaveChooser.showSaveDialog(this); if (num2 == JFileChooser.APPROVE_OPTION) { newFile = noteSaveChooser.getSelectedFile(); this.setTitle(newFile.getName()); try { FileWriter fw = new FileWriter(newFile); BufferedWriter bw = new BufferedWriter(fw); bw.write(textArea.getText()); bw.close(); fw.close(); } catch (IOException e2) { e2.printStackTrace(); } } writeFile(fileName); } /* 以下为另存文件 */ else if (eventSource == saveAsItem) { this.saveAsFileDialog.setVisible(true); // 显示保存文件的对话框 fileName = saveAsFileDialog.getDirectory() + saveAsFileDialog.getFile(); if (fileName != null) writeFile(fileName); } /* 以下为保存全部 */ else if (eventSource == selectItem) { textArea.selectAll(); // 全选 } /* 以下为复制文本 */ else if (eventSource == copyItem) { String text = textArea.getSelectedText(); // 复制 StringSelection selection = new StringSelection(text); clipBoard.setContents(selection, null); } /* 剪切文本 */ else if (eventSource == cutItem) { String text = textArea.getSelectedText(); StringSelection selection = new StringSelection(text); clipBoard.setContents(selection, null); // 剪切时用空串代替被选字符。 textArea.replaceRange("", textArea.getSelectionStart(), textArea .getSelectionEnd()); } /* 粘贴文本 */ else if (eventSource == pasteItem) { Transferable contents = clipBoard.getContents(this); if (contents == null) return; String text; text = ""; try { text = (String) contents .getTransferData(DataFlavor.stringFlavor); } catch (Exception exception) { } textArea.replaceRange(text, textArea.getSelectionStart(), textArea .getSelectionEnd()); } else if (eventSource == exitItem) { System.exit(0); } } /* 读文件方法 */ public void readFile(String fileName) { try { File file = new File(fileName); FileReader readIn = new FileReader(file); int size = (int) file.length(); int charsRead = 0; char[] content = new char[size]; while (readIn.ready()) charsRead += readIn.read(content, charsRead, size - charsRead); readIn.close(); textArea.setText(new String(content, 0, charsRead)); } catch (IOException e) { System.out.println("Error opening File"); } } /* 写文件方法 */ public void writeFile(String fileName) { try { File file = new File(fileName); FileWriter writeOut = new FileWriter(file); writeOut.write(textArea.getText()); writeOut.close(); } catch (IOException e) { System.out.println("Error writing file"); } } public static void main(String[] args) { Note frame1 = new Note(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 让窗口居中显示 Dimension frame1Size = frame1.getSize(); if (frame1Size.height > screenSize.height) { frame1Size.height = screenSize.height; } if (frame1Size.width > screenSize.width) { frame1Size.width = screenSize.width; } frame1.setLocation((screenSize.width - frame1Size.width) / 2, (screenSize.height - frame1Size.height) / 2); frame1.setVisible(true); } }
发表评论
-
Swing中引入Android的NinePatch技术,让Swing拥有Android的外观定制能力
2012-09-21 09:22 1627【摘要】 本文诣在 ... -
JavaSwing实现支持合并拆分的JTable
2010-12-16 15:39 1977GridBagModel:抽象模型接口。该接口用于描述表格中单 ... -
JTable小例子,表格中使用JComboBox下拉按钮
2010-12-16 15:21 5426import java.awt.BorderLayout; ... -
配合滚动面板实现JTable上下翻页的效果
2010-12-16 14:26 3424import java.awt.BorderLayout; ... -
JScrollBar简单演示例子
2010-12-06 19:28 6623import java.awt.*; import java ... -
点击jtable的表头,数据会根据根据表头来排序
2010-12-06 11:47 5137import javax.swing.JFrame; imp ... -
重写JSplitPane的BasicSplitPaneUI
2010-09-18 13:39 1578import java.awt.Color; import ... -
Swing窗口初始最大化的方法
2010-08-20 11:09 79061.设置窗口最大(伪最大化) JFrame frame =n ... -
Tree目录实现拖拽功能演示实例(DragAndDrop)
2010-08-10 16:49 1802import java.awt.BorderLayout; ... -
设置JTextPane指定内容的颜色
2010-05-21 14:29 1367package Assis; import java.a ... -
ScaleImageDemo图像缩小与放大演示
2010-05-12 14:59 2123package Assis; import java.a ... -
TreesDemo
2010-05-04 11:19 1093import java.awt.*; import java ... -
TableDemo
2010-05-04 11:17 1206import javax.swing.JTable; imp ... -
分割面板演示JSplitPaneDemo
2010-05-04 11:12 1398//Java Swing 带分隔条的面板代码 impor ... -
StylesExample8
2010-04-08 12:55 1206import javax.swing.*; import j ... -
StylesExample7
2010-04-08 12:54 1004import javax.swing.*; import j ... -
StylesExample6
2010-04-08 12:52 1071import javax.swing.*; import j ... -
StylesExample5
2010-04-08 12:51 999import javax.swing.*; import j ... -
StylesExample4
2010-04-08 12:50 1116import javax.swing.*; import j ... -
StylesExample3
2010-04-08 12:50 1011import javax.swing.*; import j ...
相关推荐
【记事本的设计与功能实现】的Java课程设计报告中,学生通过开发一个基于Java的图形界面记事本应用,深化了对面向对象编程的理解和实际应用能力。这个记事本程序提供了基本的文字编辑功能,如文本编辑、文件管理、...
首先,我们要理解Java是如何实现记事本功能的。在Java中,我们可以利用Swing或JavaFX库来创建图形用户界面(GUI),这两个库提供了丰富的组件来构建桌面应用,如按钮、文本框等。在这个记事本Demo中,可能会包含以下...
本章主要关注如何使用Java Swing库来构建简易记事本,包括工具栏、菜单和弹出菜单的实现。这些元素极大地增强了用户体验,使软件更加易于操作。 首先,我们讨论的是工具栏(JToolBar)。工具栏是一种容器,通常位于...
菜单栏通常包含“文件”、“编辑”、“查看”等选项,工具栏则提供快捷操作按钮,如新建、打开、保存、剪切、复制、粘贴等。 3. **文件操作**:记事本软件需要支持文件的打开、保存和新建。这需要实现文件的读写...
这个"Java记事本(带工具栏等)"项目就是一个很好的实例,提供了基本的文本编辑功能,以及设置字体和文件的保存、打开操作。 首先,我们来探讨Java GUI编程的基础,这通常使用Java的Swing或JavaFX库来实现。在这个...
相较于传统简易记事本,此应用具备更多的实用功能,旨在为用户提供更为丰富的文本处理体验。 #### 二、核心功能模块 1. **文件操作**: - 新建文件(`mFile_New`):创建一个空白文档。 - 打开文件(`mFile_Open`)...
菜单栏包含“文件”、“编辑”等选项,工具栏则包含常用的快捷按钮,如“新建”、“打开”、“保存”等。 2. **文本编辑控件**: - 在VB中,我们通常使用`RichTextBox`控件作为文本编辑区域。它支持多种文本格式,...
本项目"**C#实现记事本完美版**"是专为初学者设计的一个学习资源,它提供了完整的源代码,帮助初学者理解如何利用C#来构建一个功能完备的文本编辑器,即我们熟知的“记事本”应用。 首先,让我们深入了解一下C#语言...
使用VC6.0 MFC开发的基于对话框的VC++...另外还包括右键快捷菜单功能,和主菜单一样实时更新菜单可能状态 利用MFC通用对话框,实现了字体设置功能;并且实现了查看工具栏和状态栏的功能,由于时间有限部分功能尚未实现
### 如何将新建记事本快捷方式添加至右键菜单 在日常的计算机操作中,我们经常需要快速创建文本文件,然而默认情况下,在Windows系统的右键菜单中,并没有直接创建记事本文件的选项,这无疑增加了我们的操作步骤。...
在本文中,我们将深入探讨如何使用C#编程语言和Windows Forms(Winform)框架来创建一个简单的记事本应用程序。Windows Forms是.NET Framework的一部分,它为开发者提供了构建桌面应用程序的强大工具,而C#则是一种...
根据提供的文档信息,我们可以深入探讨“记事本的设计与功能实现Java课程设计报告”中的关键知识点和技术细节。本文将从系统需求分析、设计思路、各功能模块的具体实现以及异常处理等方面进行详细介绍。 ### 1. ...
### JAVA实现记事本的源代码分析 #### 概述 这段Java代码片段展示了如何创建一个简单的记事本应用程序。该程序旨在模仿Windows系统中的记事本功能,并且已实现大部分基本功能。根据描述,虽然代码中存在一些小错误...
### 基于JAVA实现记事本(设计说明书、代码)——相关知识点解析 #### 一、项目背景与概述 本项目旨在通过Java语言实现一个类似Windows记事本的功能全面的应用程序。Java作为一种强大的编程语言,以其跨平台、高...
通过双击该文件,可以将其中包含的注册表键值添加到用户的系统注册表中,从而实现添加右键菜单快捷方式的功能。不过,同样需要注意,直接修改注册表有风险,错误的操作可能导致系统出现问题,因此在进行此类操作时应...
通过以上分析可以看出,本记事本项目不仅实现了基础的文字编辑功能,还在用户界面和交互方面进行了优化,如提供了多样的字体样式选择、颜色调整选项以及界面风格切换等特色功能。此外,项目还充分考虑了用户的使用...
这个程序虽然没有实现打印和拖放文件的功能,但它包含了一些基本但至关重要的编辑功能,如查找、替换、转到指定行,以及通过添加工具栏和状态栏来增强用户体验。此外,它还引入了一项新特性——文本颜色功能。 首先...
【Java编程实现记事本程序】 在Java编程中,创建一个类似于Windows系统中的记事本程序是一项基础且实用的任务。这个程序通常会包含文件操作(如新建、打开、保存、打印)、文本编辑(如复制、剪切、粘贴、删除)...
在实际实现过程中,该记事本项目还包含了其他辅助功能。例如,菜单栏还包括“格式”、“帮助”和“查看”项,提供了更多的文本格式调整和用户指南。工具栏则提供了快捷图标,用户可以直接通过图标进行相应的操作,如...