?? mainframe.java
字號:
//int x = 1+1;
switch(option) {
//確認(rèn)文件保存
case JOptionPane.YES_OPTION: //保存文件
//option += x-x;
saveFile();
break;
case JOptionPane.NO_OPTION: //放棄文件保存,關(guān)閉文件
//option += x-x;
this.dispose();
break;
case JOptionPane.CANCEL_OPTION: //取消當(dāng)前操作
areaText.setCaretPosition(0);
break;
}
saveFont();
}
}
private void cut() {
//剪切
areaText.cut();
stateBarChanged();
if(areaText.getText()=="")
setItemEnabled(false);
popUpMenu.setVisible(false);
}
private void copy() {
//復(fù)制
areaText.copy();
//stateBarChanged();
popUpMenu.setVisible(false);
}
private void paste() {
//粘貼
areaText.paste();
stateBarChanged();
if(areaText.getText()!="")
setItemEnabled(true);
popUpMenu.setVisible(false);
}
private void search() {
//查找
//if(butSearch == null)
//butSearch = new JButton("查找下一個");
if(searchDialog == null)
searchDialog = new SearchDialog(this, "查找", 280, 100);
//添加 查找按鈕的監(jiān)聽事件:
searchDialog.butSearch.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
searchNext(searchDialog);
}
});
searchDialog.addWindowListener(new WindowAdapter() {
});
//按鈕:取消
searchDialog.butCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
searchDialog.dispose();
searchDialog = null;
}
});
//areaText.paste();
//stateBarChanged();
popUpMenu.setVisible(false);
}
void searchNext(MyDialog myDialog) {
String searchStr = myDialog.getTextField();
System.out.println("search: " + searchStr);
String desStr = areaText.getText();
if(!myDialog.diffIsChecked())
{
//不 區(qū)分大小寫
desStr = desStr.toLowerCase();
searchStr = searchStr.toLowerCase();
}
textCurrentpos = desStr.indexOf(searchStr, textCurrentpos);
if(textCurrentpos == -1) {
//未找到
JOptionPane.showMessageDialog(
myDialog,
"未找到\""+myDialog.getTextField()+"\"",
"CQ.JONE",
JOptionPane.WARNING_MESSAGE);
}
else {
//突出查找的內(nèi)容
areaText.select(textCurrentpos, textCurrentpos+searchStr.length());
textCurrentpos += searchStr.length();
}
}
private void replace() {
//替換
if(replaceDialog == null)
replaceDialog = new ReplaceDialog(this, "替換", 300, 160);//new ReplaceDialog(this, "替換", 260, 160);
//添加 查找按鈕的監(jiān)聽事件:
replaceDialog.butSearch.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
searchNext(replaceDialog);
}
});
//按鈕:替換
replaceDialog.butReplace.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String selectedText = areaText.getSelectedText();
if(selectedText == null)
selectedText="";
if(selectedText.equals("")) {
searchNext(replaceDialog);
}
else {
if(textCurrentpos != -1) {
//替換當(dāng)前選中的內(nèi)容
areaText.replaceSelection(replaceDialog.getTextField2());
//查找下一個
searchNext(replaceDialog);
stateBarChanged();
}
System.out.println("selectedText: " + selectedText);
}
//System.out.println("selectedText: " + areaText.getSelectedText());
}
});
//按鈕:替換所有
replaceDialog.butReplaceAll.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
areaText.setText(areaText.getText().replaceAll(
replaceDialog.getTextField(),
replaceDialog.getTextField2())
);
stateBarChanged();
//replaceDialog.dispose();
//replaceDialog = null;
}
});
//按鈕:取消
replaceDialog.butCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
replaceDialog.dispose();
replaceDialog = null;
}
});
popUpMenu.setVisible(false);
}
private void changeLineAuto() {
//菜單——自動 換行
//String autoStr = itemAutoLine.getText();
if(areaText.getLineWrap()){
//若之前是自動換行,現(xiàn)在應(yīng)該改為自動不換行
itemAutoLine.setText("自動換行 (N)");
areaText.setLineWrap(false);
labelColRows.setForeground(Color.BLACK);
//updateRowCols(0,0);
}
else {
itemAutoLine.setText("自動換行 (Y)");
labelColRows.setForeground(Color.GRAY);
areaText.setLineWrap(true);
}
//isAutoLine = !isAutoLine;
}
void loadLastFontSet() {
if(fontDialog != null) {
fontDialog.listFont.setSelectedIndex(selectedFont);
fontDialog.listStyle.setSelectedIndex(selectedStyle);
fontDialog.listSize.setSelectedIndex(selectedSize);
fontDialog.setExampleFont();
fontDialog.updateFiledFont();
//fontDialog.setFieldFont(fontDialog.setFont());
}
}
//加載字體設(shè)置文件
void loadFontSetFile() {
try {
//打開選取的文件
BufferedReader buf = new BufferedReader(
new FileReader(fileFontSet));
//讀取文件并附加至文字編輯區(qū)
String fontSet;
while((fontSet = buf.readLine()) != null) {
//System.out.println("fontSet :" + fontSet);
String[] fs = fontSet.split("\t");
selectedFont = Integer.parseInt(fs[0]);
selectedStyle = Integer.parseInt(fs[1]);
selectedSize = Integer.parseInt(fs[2]);
}
buf.close();
} catch (IOException e){
//TODO Auto-generated catch block
JOptionPane.showMessageDialog(null, e.toString(),
"打開fontSet.txt文件失敗", JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
}
private void changeFont() {
//菜單——字體 更改
if(fontDialog == null) {
fontDialog = new FontDialog(this, "字體", 310,300);
loadLastFontSet();
String fontStr = ""+fontDialog.getFont();
boolean isEn = M_StringConstants.isEn(fontStr.charAt(0));
if(!isEn) {
//若是中文
fontDialog.labelForExample.setText("陳求江");
}
else {
fontDialog.labelForExample.setText("CcQqJj");
}
}
//確定按鈕的監(jiān)聽事件:
fontDialog.butConfirm.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//searchNext(replaceDialog);
//改變字體
fontChanged = true;
areaText.setFont(fontDialog.getFont());
fontDialog.setExampleFont();
updateSelectedFont();
//fontDialog.updateFiledFont();
//狀態(tài)欄:已修改
//stateBarChanged();
//保存字體設(shè)置
saveFont();
//關(guān)閉字體對話框
fontDialog.dispose();
fontDialog = null;
}
});
//按鈕:取消
fontDialog.butCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
fontDialog.dispose();
fontDialog = null;
}
});
}
//更新被設(shè)置的字體
void updateSelectedFont() {
if(fontDialog != null) {
selectedFont = fontDialog.listFont.getSelectedIndex();
selectedStyle = fontDialog.listStyle.getSelectedIndex();
selectedSize = fontDialog.listSize.getSelectedIndex();
//fontDialog.setExampleFont();
//fontDialog.updateFiledFont();
//fontDialog.setFieldFont(fontDialog.setFont());
}
}
//更新當(dāng)前光標(biāo)所在的列,行
void updateRowCols(int rol, int col) {
labelColRows.setText("行: "+rol+", 列: "+col);
}
private void stateBarChanged() {
stateBar.setText("已修改");
stateBar.setForeground(Color.BLACK);
}
private void stateBarUnChanged() {
stateBar.setText("未修改");
stateBar.setForeground(Color.GRAY);
}
//在判斷文件是否保存的方法上,主要是根據(jù)狀態(tài)欄來進(jìn)行判斷
private boolean isCurrentFileSaved() {
//System.out.println("state.string: " + stateBar.getText());
if(stateBar.getText().equals("未修改")){
return true;
}
else
return false;
}
private void openNew() {
ExampleFileFilter filter = new ExampleFileFilter();
filter.addExtension("txt");
filter.addExtension("java");
filter.setDescription("字符串文件");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION) {
String openFileNm = chooser.getSelectedFile().getPath();
openFile(openFileNm);
}
}
class My_WindowAdapter extends WindowAdapter {
public void windowClosing(WindowEvent e) {
closeFile();
}
}
// boolean isAutoLine = true; //自動換行 : 是 JTextArea.getLineWrap()可以獲取文本區(qū)的換行策略。
private Color selectedTextColor = Color.WHITE; //設(shè)置用于呈現(xiàn)選定文本的當(dāng)前顏色。
private int width = 640; //JFrame的初始寬,高
private int height = 480;
private String titleIcon = "title.gif"; //默認(rèn)標(biāo)題圖標(biāo)
private int textCurrentpos = 0;
private static int selectedFont = 0;
private static int selectedStyle = 0;
private static int selectedSize = 0;
private boolean fontChanged = false;
private String fileFontSet = "fontSet.txt"; //保存字體設(shè)置的文本文件
private Color areaForeground = Color.DARK_GRAY;
private Color areaBackground = Color.PINK;
private Color caretColor = Color.YELLOW;//Color.CYAN;
private JMenu menuFile; //設(shè)置“文件”菜單
private JMenuItem itemNew;
private JMenuItem itemOpen;
private JMenuItem itemSave;
private JMenuItem itemSaveAs;
private JMenuItem itemClose;
private JMenu menuEdit; //設(shè)置“編輯”菜單
private JMenuItem itemCut;
private JMenuItem itemCopy;
private JMenuItem itemPaste;
private JMenuItem itemSearch;
private JMenuItem itemReplace;
private JMenu menuFormat; //設(shè)置“字體”菜單
private JMenuItem itemAutoLine; //自動換行
private JMenuItem itemFont; //字體
private JMenu menuSetting; //設(shè)置“設(shè)置”菜單
private JMenu itemForeground; //文本區(qū):前景著色
private JMenuItem itemBackground; //文本區(qū):背景著色
private JMenuItem itemCaretColor; //光標(biāo)著色
private JMenu menuHelp; //設(shè)置“幫助”菜單
private JMenuItem itemAbout;
private JMenuItem itemHelp;
private JTextArea areaText; //設(shè)置文本編輯區(qū)域
private JLabel stateBar; //狀態(tài)欄
private JLabel labelColRows;
private JPopupMenu popUpMenu;
private JFileChooser chooser;
private static SearchDialog searchDialog = null; //查找對話框
private static ReplaceDialog replaceDialog = null; //查找對話框
private static FontDialog fontDialog = null; //字體對話框
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -