[笔记]|[java]|[javax.swing]java仿windows记事本笔记
[笔记]|[java]|[javax.swing]java仿windows记事本笔记
文章目录
- [笔记]|[java]|[javax.swing]java仿windows记事本笔记
- 代码
- JOptionPane
- JFileChooser
- PrintStream
- 找不到文件FileNotFoundException 异常
- 鼠标右键监听器
- 文本超行实现滚动
- setLocationRelativeTo()
- setResizable()
- setDefaultCloseOperation()
- getSource()
- FileFilter
- getSelectedFile()与getPath()
- BufferedReader
- readLine()与read()
- StringBuffer用法
- java文本的撤销—addUndoableEditListener(UndoableEditListener listener)
- 关于setAccelerator与setMnemonic的区别
- 键盘监听器
代码
JOptionPane
import javax.swing.JOptionPane;
JOptionPane.showConfirmDialog(null, "是否将更改保存到 "+
title+"?", "记事本", JOptionPane.YES_NO_CANCEL_OPTION);
JOptionPane为弹出提示框(这段为弹出提示框,是否将更改保存到文本)
showConfirmDialog框为样式
对话框的按钮通常为:“是”、“否”、“取消”和“确认”及组合,showConfirmDialog()方法的返回值为整型常量,当按下一个按钮时,返回相应的整型常量,“是”、“否”、“取消”和“确认”对应的常量分别是:0、1、2、0,当按下对话框的“关闭按钮”关闭对话框时,返回值是:-1。
- showConfirmDialog(Component parentComponent, Object message);
这个方法由参数“Object message”给出提示信息,按钮为默认的“是”、“否”和“取消”。
2.showConfirmDialog(Component parentComponent, Object message, String title, int optionType);
参数“int optionType”确定了按钮的定制,具体取值是:
DEFAULT_OPTION //“确定”按钮
YES_NO_OPTION // “是”、“否”按钮
YES_NO_CANCEL_OPTION //“是”、“否”、“取消”按钮
OK_CANCEL_OPTION //“确定”、“取消”按钮
参数“Object message”给出提示信息,参数“String title”给出对话框标题。
3.showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType);
这个方法增加了一个图标类型的参数“int messageType”,具体取值是:
ERROR_MESSAGE
INFORMATION_MESSAGE
WARNING_MESSAGE
QUESTION_MESSAGE(默认类型)
PLAIN_MESSAGE(无图标)
具体应用可参考消息对话框的实例。
- showConfirmDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon);
这个方法增加了一个参数“Icon icon”,通过该参数,用户可以把自己的图标添加到对话框中;
例
Icon icon=new ImageIcon(“grapes.gif”);
Int n=JOptionPane.showConfirmDialog(null,“提示信息”,“标题”,JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane. INFORMATION_MESSAGEicon);
参考博文:http://blog.sina.com.cn/s/blog_c588bc040102wy5m.html
参考博文内有此方法样例
Java消息提示框JOptionPane的使用方法:
JFileChooser
import javax.swing.JFileChooser;
打开文件
JFileChooser fd = new JFileChooser();
//fd.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fd.showOpenDialog(null);
File f = fd.getSelectedFile();
if(f != null){}
注意到,代码中我用到了showOpenDialog()来打开一个打开文件的对话框,你也可以在setFileSelectionMode中设置成OPEN模式。
保存文件
JFileChooser jf = new JFileChooser();
jf.setFileSelectionMode(JFileChooser.SAVE_DIALOG | JFileChooser.DIRECTORIES_ONLY);
jf.showDialog(null,null);
File fi = jf.getSelectedFile();
String f = fi.getAbsolutePath()+"\\test.txt";
System.out.println("save: "+f);
try{
FileWriter out = new FileWriter(f);
out.write("successful!!!");
out.close();
}
catch(Exception e){}
这段代码中就用到了DIRECTORIES_ONLY 和SAVE_DIALOG的属性,此时调用showDialog()就会弹出选择框;然后,调用getSelectedFile()获得所选中的文件夹,最后新建一个文件,并写入文本。该段代码亲测成功。
参考博文 https://blog.****.net/wzq__janegreen_/article/details/70170934
JFileChooser.setDialogTitle(string dialogtitle); //设置显示在 jfilechooser 窗口标题栏的字符串。
JFileChooser.showSaveDialog**(Component parent) 弹出一个 “Save File” 文件选择器对话框。
当按下文件对话框上的“确认”,“取消”按钮或关闭图标,showSaveDialog()方法会返回下列常量之一:JFileChoos.APPROVE_OPTION JFileChoos.CANCEL_OPTION
JFileChooser.setSelectedFile()和JFileChooser.getSelectedFile()
JFileChooser这个类中有一个setSelectedFile()和getSelectedFile() 方法,是用来设置和获取一个选中的文件的,返回类型是File类型。 一般用于Java Gui开发时上传文件时使用
PrintStream
使用PrintStream输出数据,输出文本 参考博文点此
找不到文件FileNotFoundException 异常
printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。
EG:
try {
out = new PrintStream(new FileOutputStream(file)) ;
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
鼠标右键监听器
public void mouseReleased(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON3) {
jpm.show(txt, e.getX(), e.getY());
}
}
});
e.getButton() == MouseEvent.BUTTON3
当鼠标右键按下时;执行
文本超行实现滚动
JScrollPane scroll = new JScrollPane(txt, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//txt为可输入文本框
setLocationRelativeTo()
public void setLocationRelativeTo(Component c)
设置窗口相对于指定组件的位置。
如果组件当前未显示或者 c 为 null,则此窗口将置于屏幕的中央。
中点可以使用 GraphicsEnvironment.getCenterPoint 确定。
参考博文:https://blog.****.net/u010995220/article/details/51120372
setResizable()
setsetResizable(boolean resizable)
参数为boolean类型,resizeable值为true时,表示在生成的窗体可以自由改变大小;
setDefaultCloseOperation()
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
设置按"X"按钮时候的动作,一般都会把它设成退出程序,相当于是System.exit(0);的动作
如果没这句话……你看起来没影响……那么请打开任务管理器吧……如果不信的话~你可以注释掉这句,然后打开 关闭 如此往复几百次……恭喜你,死机了……(答案源自百度知道)
getSource()
ActionEvent 的 getSource() 继承自 EventObject;
返回最初发生 Event 的对象。
FileFilter
FileFilter
使用指定扩展集的过滤器的实现。文件的扩展名是最后一个“。”之后文件名的一部分。名称不包含“。”的文件。没有文件扩展名。文件扩展名比较不区分大小写。
也就是说:JFileChooser类有setFileFilter方法,用来过滤 可以选择窗口中哪些后缀的文件,就想你想上传文件到服务器弹出窗口,然后让你选择文件时,如果设置了FileFilter为doc后缀格式的文件的话,窗口中只显示doc后缀的文件,其他的不显示。
getSelectedFile()与getPath()
返回选中的文件与返回定义时的路径
BufferedReader
BufferedReader 是缓冲字符输入流。它继承于Reader。
BufferedReader 的作用是为其他字符输入流添加一些缓冲功能。
readLine()与read()
-
readLine()
功能:读取一个文本行。
一定要注意:
1、读入的数据要注意有/r或/n或/r/n
2、没有数据时会阻塞,在数据流异常或断开时才会返回null
3、使用socket之类的数据流时,要避免使用readLine(),以免为了等待一个换行/回车符而一直阻塞
4、readLine()是一个阻塞函数,当没有数据读取时,就一直会阻塞在那,而不是返回null
5、readLine()只有在数据流发生异常或者另一端被close()掉时,才会返回null值。
6、如果不指定buffer大小,则readLine()使用的buffer有8192个字符。在达到buffer大小之前,只有遇到”/r”、”/n”、”/r/n”才会返回。7、该方法读取一行文本,当遇到换行符”\n”,回车符”\r”或者回车符后面紧跟着换行符时,该行结束并返回。没有数据时,将会一直处于等待状态。因此在进行网络连接时,应该避免使用该方法。
-
read()
功能:读取单个字符的个数,如果已经读完的话会返回-1 (其范围从 0 到 65535 )
参考原文:https://blog.****.net/sinat_31057219/article/details/78742653
StringBuffer用法
初始化:
StringBuffer对象的初始化不像String类的初始化一样,Java提供的有特殊的语法,而通常情况下一般使用构造方法进行初始化。
StringBuffer sb = new StringBuffer();
如何清空:
StringBuffer类没有clear方法,不过可以通过下面两种方法来清空一个StringBuffer的实例:
方法一:使用delete方法
sb.delete(0,sb.length());
方法二: 使用setLength方法
sb.setLength(0);
参考博客:http://outofmemory.cn/code-snippet/7378/java-stringbuffer-clear-or-clean
java文本的撤销—addUndoableEditListener(UndoableEditListener listener)
import javax.swing.undo.UndoManager;
UndoManager .addUndoableEditListener(UndoableEditEvent .getEdit());
在就是在撤销操作中调用UndoManager .undo()就可以了,还有canUndo()这个方法很重要,用于判断undo操作是否成功,如果成功就返回true。
在恢复操作中调用UndoManager .redo()可以实现恢复,还有canRedo()方法判断redo操作是否成功,如果成功返回true。
关于setAccelerator与setMnemonic的区别
setMnemonic 设置的是括号里的。只有在菜单显示的情况下才可以起作用
setAccelerator 设置的是后面的 Ctrl + O 之类。
键盘监听器
JMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));
//设置单键监听器
JMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,ActionEvent.CTRL_MASK));
//设置组合键监听器
JMenuItem.setMnemonic(KeyEvent.VK_H);
//设置只有在菜单显示的情况下才可以起作用的键盘监听器