import javax.swing.JOptionPane; JOptionPane.showConfirmDialog(null, "是否將更改保存到 "+ title+"?", "記事本", JOptionPane.YES_NO_CANCEL_OPTION);
JOptionPane爲彈出提示框(這段爲彈出提示框,是否將更改保存到文本)
showConfirmDialog框爲樣式
對話框的按鈕通常爲:「是」、「否」、「取消」和「確認」及組合,showConfirmDialog()方法的返回值爲整型常量,當按下一個按鈕時,返回相應的整型常量,「是」、「否」、「取消」和「確認」對應的常量分別是:0、1、2、0,當按下對話框的「關閉按鈕」關閉對話框時,返回值是:-1。
這個方法由參數「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(無圖標)
具體應用可參考消息對話框的實例。
這個方法增加了一個參數「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的使用方法:
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.csdn.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輸出數據,輸出文本 參考博文點此
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爲可輸入文本框
public void setLocationRelativeTo(Component c)
設置窗口相對於指定組件的位置。
如果組件當前未顯示或者 c 爲 null,則此窗口將置於屏幕的中央。
中點可以使用 GraphicsEnvironment.getCenterPoint 確定。
參考博文:https://blog.csdn.net/u010995220/article/details/51120372
setsetResizable(boolean resizable)
參數爲boolean類型,resizeable值爲true時,表示在生成的窗體可以自由改變大小;
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
設置按"X"按鈕時候的動作,一般都會把它設成退出程序,相當於是System.exit(0);的動作
如果沒這句話……你看起來沒影響……那麼請打開任務管理器吧……如果不信的話~你可以註釋掉這句,然後打開 關閉 如此往復幾百次……恭喜你,死機了……(答案源自百度知道)
ActionEvent 的 getSource() 繼承自 EventObject;
返回最初發生 Event 的對象。
FileFilter
使用指定擴展集的過濾器的實現。文件的擴展名是最後一個「。」之後文件名的一部分。名稱不包含「。」的文件。沒有文件擴展名。文件擴展名比較不區分大小寫。
也就是說:JFileChooser類有setFileFilter方法,用來過濾 可以選擇窗口中哪些後綴的文件,就想你想上傳文件到服務器彈出窗口,然後讓你選擇文件時,如果設置了FileFilter爲doc後綴格式的文件的話,窗口中只顯示doc後綴的文件,其他的不顯示。
返回選中的文件與返回定義時的路徑
BufferedReader 是緩衝字符輸入流。它繼承於Reader。
BufferedReader 的作用是爲其他字符輸入流添加一些緩衝功能。
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.csdn.net/sinat_31057219/article/details/78742653
初始化:
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
import javax.swing.undo.UndoManager; UndoManager .addUndoableEditListener(UndoableEditEvent .getEdit());
在就是在撤銷操作中調用UndoManager .undo()就可以了,還有canUndo()這個方法很重要,用於判斷undo操作是否成功,如果成功就返回true。
在恢復操作中調用UndoManager .redo()可以實現恢復,還有canRedo()方法判斷redo操作是否成功,如果成功返回true。
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); //設置只有在菜單顯示的情況下才可以起作用的鍵盤監聽器