亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mainframe.java

?? 實現了Window的NotePad的功能
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
					}
				});
		
		//菜單——替換
		itemReplace.addActionListener(
				new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						replace();
					}
				});
		
		//菜單——自動換行
		itemAutoLine.addActionListener(
				new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						changeLineAuto();
					}
				});
		
		//菜單——字體 更改
		itemFont.addActionListener(
				new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						changeFont();
					}
				});
		
//		菜單——背景色 更改
		itemBackground.addActionListener(
				new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						
					}
				});
		
//		菜單——前景色 更改
		/*itemForeground.addActionListener(
				new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						
					}
				});
		*/
//		菜單——光標色 更改
		itemCaretColor.addActionListener(
				new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						
					}
				});
		
		
		//菜單——關于
		itemAbout.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				//
				JOptionPane.showOptionDialog(null,
						"程序名稱:\n		JNotePadEditor \n" +
						"程序設計: \n		陳求江\n" +
						"簡介:\n	一個簡單的文字編輯器\n " + 
						"	可作為驗收Java的實現對象\n" + 
						" 	歡迎網友下載研究交流\n\n" + 
						"http://ecolab.ruc.edu.cn/", 
						"JNotePadEditor By 2008.12.31",
						JOptionPane.DEFAULT_OPTION, 
						JOptionPane.INFORMATION_MESSAGE,
						null, null, null);
			}
		});
		
		//菜單——幫助
		itemHelp.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent e) {
						openHelpFile();
					}
				});
		
		//編輯區域鍵盤事件
		areaText.addKeyListener(
				new KeyAdapter() {
					public void keyTyped(KeyEvent e) {
						//System.out.println("Sourse:" + e.getKeyModifiersText(KeyEvent.CTRL_DOWN_MASK));
						//System.out.println("KeyChar byte:" + (byte)e.getKeyChar());
						byte keyTypedChar = (byte)e.getKeyChar();
						//
						byte[] ctrlKeys = {6,18};
						Arrays.sort(ctrlKeys);
						//if(Arrays.binarySearch(ctrlKeys,keyTypedChar) == -1) {
//						說明CTRL+F(6) 或 CTRL+R(18) 鍵未被按下	
						if(keyTypedChar > 30) {
							//說明CTRL類的有效組合 鍵未被按下						
							stateBarChanged();				//狀態欄 已修改
							//updateCurrentColRows();			//更新當前光標所在的列,行
							//if(areaText.getText()!="") {
							String x = areaText.getText();
							//x = x.replace(" |\t", "");
							if(!x.equals("")) {							
								setItemEnabled(true); 		//菜單——查找等可見
								//if(areaText.getCaretPosition()!=0) {
									//itemSearch.setEnabled(true);
								//}
							}
							else {
								setItemEnabled(false);
							}
						}
					}
				});
		
		//編輯區域鼠標事件
		areaText.addMouseListener(
				new MouseAdapter() {
					public void mouseReleased(MouseEvent e) {
						if(e.getButton() == MouseEvent.BUTTON3){	//右單擊
							popUpMenu.show(menuEdit, e.getX(), e.getY());
							//popUpMenu.setVisible(true);
						}
					}
					
					public void mouseClicked(MouseEvent e) {
						//返回當前光標位置,這是為了使查找從當前光標開始
						textCurrentpos = areaText.getCaretPosition();		
						if(e.getButton() == MouseEvent.BUTTON1)	{//左單擊
							popUpMenu.setVisible(false);
							//updateCurrentColRows();			//更新當前光標所在的列,行
						}
					}
				});		
		areaText.addCaretListener(new CaretListener() {
			public void caretUpdate(CaretEvent e) {
				//int dot = e.getDot();
				//int mark = e.getMark();
				if(!areaText.getLineWrap()) {
					//格式設置為:非自動換行
					Rectangle rec;
					try {
						int caretPos = areaText.getCaretPosition();
						rec = areaText.modelToView(caretPos);
						int row = (rec.y / rec.height + 1);
						int col = 1;
						int offset = -1;
						if(rec.x != 0) {
							 offset = areaText.getLineStartOffset(row-1);
							 //System.out.println("offset:" + offset);
							 int lastLinePos = offset-row+1;
							 col = caretPos-lastLinePos;
							 if(offset == 0)
								 col +=1;
						}	
						//System.out.println("caretPos:" + caretPos);
						//System.out.println("rec:" + rec.toString());
						//System.out.println("行號:" + row);
						//System.out.println("列號:" + col);
						updateRowCols(row,col);
					} catch (BadLocationException e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
				}
			     
				
				//System.out.println("dot :" + dot);
				//System.out.println("mark :" + mark);
			}
		});
	}
	
	private void createInitFile() {
		//創建初始文件
		//創建無標題的新建文本文件
		this.setTitle("新建無標題文本文件");		//
		areaText.setText("");					//清空當前JTextArea,回到一個新建的模樣
		this.stateBarUnChanged();		
	}
	
	private void createNewFile() {
		if(isCurrentFileSaved()) {	//文件是否為保存狀態
			createInitFile();		//創建無標題的新建文本文件
		}
		else {
			//顯示確認對話框
			int option = JOptionPane.showConfirmDialog(
					null, "文件已修改,是否保存?",
					"保存文件", JOptionPane.YES_NO_CANCEL_OPTION,
					JOptionPane.WARNING_MESSAGE, null);
			switch(option) {
			//確認文件保存
			case JOptionPane.YES_OPTION:	//保存文件
				saveFileAs();
				createInitFile();
				break;
			case JOptionPane.NO_OPTION:		//放棄文件保存,直接新建一個文件
				createInitFile();
				break;
			case JOptionPane.CANCEL_OPTION:	//取消當前操作
				break;
			}
		}
		
	}
	
	private void openFile(){
		if(isCurrentFileSaved()) {	//文件是否為保存狀態
			openNew();
		}
		else {
			//顯示確認對話框
			int option = JOptionPane.showConfirmDialog(
					null, "文件已修改,是否保存?",
					"保存文件", JOptionPane.YES_NO_CANCEL_OPTION,
					JOptionPane.WARNING_MESSAGE, null);
			switch(option) {
			//確認文件保存
			case JOptionPane.YES_OPTION:	//保存文件
				saveFile();
				break;
			case JOptionPane.NO_OPTION:		//放棄文件保存,打開一個新文件
				openNew();
				break;
			case JOptionPane.CANCEL_OPTION:	//取消當前操作
				break;
			}
		}
		
 
		//BufferedReader br = new BufferedReader(
				//new FileReader(file));
	}
//	打開一個指定文件路徑的文件
	private void openFile(String openFileNm) {
		File file = new File(openFileNm);
    	System.out.println("You chose to open this file: " + openFileNm);
    	
    	try {
    		//打開選取的文件
			BufferedReader buf = new BufferedReader(
					new FileReader(file));
			//設置文件標題
			setTitle(openFileNm);
			//刪除前一次的文件
			areaText.setText("");
			//設置狀態欄為初始狀態
			this.stateBarUnChanged();
			//取得系統相依的換行字符
			String lineSeparator = System.getProperty("line.separator");
			//讀取文件并附加至文字編輯區
			String text;
			while((text = buf.readLine()) != null) {
				areaText.append(text);
				areaText.append(lineSeparator);
			}
			areaText.setCaretPosition(0);
			if(areaText.getText()!="") {
				setItemEnabled(true);
			}
			buf.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			JOptionPane.showMessageDialog(null, e.toString(),
					"打開文件失敗", JOptionPane.ERROR_MESSAGE);
			e.printStackTrace();
		} catch (IOException e){
			//TODO Auto-generated catch block
			JOptionPane.showMessageDialog(null, e.toString(),
					"打開文件失敗", JOptionPane.ERROR_MESSAGE);
			e.printStackTrace();
		}
	}
	
	private void openHelpFile(){
		openFile("help.txt");
	}
	
	private void saveFile(){
		String fileNm = this.getTitle();
		//從標題欄取得文件名稱
		File file = new File(fileNm);
		//若指定的文件不存在
		if(!file.exists()) {
			//執行另存為...
			saveFileAs();
		}
		else {
			try {
				BufferedWriter buf = new BufferedWriter(
						new FileWriter(file));
				buf.write(areaText.getText());
				buf.flush();
				buf.close();
				//設置狀態欄為:“未修改”
				this.stateBarUnChanged();
				
			} catch (IOException e) {
				// TODO Auto-generated catch block
				JOptionPane.showMessageDialog(null, e.toString(),
						"保存文件失敗", JOptionPane.ERROR_MESSAGE);
				e.printStackTrace();
			}
		}
		
	}
	
	//保存字體
	 void saveFont() {
		if(fontChanged) {
			//如果字體設置被改動,則需要保存改動至外存中
			try {
				BufferedWriter buf = new BufferedWriter(
						new FileWriter(fileFontSet,false));
				//buf.write(selectedFont);
				//buf.write(selectedStyle);
				//buf.write(selectedSize);
				String fontStr = ""+selectedFont+"\t"+selectedStyle+"\t"+selectedSize;
				buf.write(fontStr);				
				buf.flush();
				buf.close();
				//設置狀態欄為:“未修改”
				//this.stateBarUnChanged();
				
			} catch (IOException e) {
				// TODO Auto-generated catch block
				//JOptionPane.showMessageDialog(null, e.toString(),
						//"保存文件失敗", JOptionPane.ERROR_MESSAGE);
				e.printStackTrace();
			}
		}
	}
	private void saveFileAs(){
		//顯示文件對話框
		try{		
			
		//JFileChooser   filechooser   =   new   JFileChooser();  
		int option = chooser.showSaveDialog(this);
		//int option = chooser.showDialog(null, null);
		
		//如果確認選取文件
		if(option == JFileChooser.APPROVE_OPTION) {
			//取得選擇的文件
			File file = chooser.getSelectedFile();
			
			//在標題欄上設置文件名稱
			this.setTitle(file.toString());			
			
			try {
				//建立新文件
				file.createNewFile();
				//進行文件保存
				saveFile();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				JOptionPane.showMessageDialog(null, e.toString(),
						"新建文件失敗", JOptionPane.ERROR_MESSAGE);
				e.printStackTrace();
			}
			
		}
		}catch(NullPointerException e) {
			System.out.println("exception : " + e.getMessage());
			e.printStackTrace();
		}
	}
	
	private void closeFile(){
		//是否已保存文件
		if(isCurrentFileSaved()) {
			//釋放窗口資源, 而后關閉程序
			this.dispose();
		}
		else {
			int option = JOptionPane.showConfirmDialog(null, "文件已修改,是否保存?",
					"保存文件", JOptionPane.YES_NO_CANCEL_OPTION,
					JOptionPane.WARNING_MESSAGE, null);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色视频一区| 国产精品久99| 中文字幕在线不卡国产视频| 亚洲成在人线免费| av电影在线观看不卡| 日韩美女天天操| 亚洲无线码一区二区三区| 丁香六月综合激情| 精品国产一区二区三区四区四| 亚洲男人电影天堂| 成人av网站在线观看| 久久精品视频网| 国产一区二区91| 在线播放中文字幕一区| 亚洲码国产岛国毛片在线| 国产一区二区导航在线播放| 日韩一区二区三区在线观看 | 91麻豆精品国产自产在线| 国产日韩视频一区二区三区| 人禽交欧美网站| 欧美性猛交一区二区三区精品| 国产亚洲精品aa| 国产精品亚洲第一区在线暖暖韩国| 欧美丰满嫩嫩电影| 午夜久久久久久| 欧美日本一道本在线视频| 亚洲地区一二三色| 欧美猛男男办公室激情| 亚洲成人中文在线| 欧美日韩你懂得| 天天综合日日夜夜精品| 欧美日韩日日骚| 日本va欧美va瓶| 日韩视频在线一区二区| 免费在线观看精品| 精品国产乱码久久久久久老虎| 奇米色一区二区| 欧美刺激午夜性久久久久久久 | 国产精品69久久久久水密桃| 精品国产精品网麻豆系列| 蜜芽一区二区三区| 精品久久久久香蕉网| 韩国v欧美v日本v亚洲v| 久久久国产精华| 99re热视频精品| 亚洲综合免费观看高清完整版在线| 一本色道久久综合亚洲aⅴ蜜桃 | 欧亚洲嫩模精品一区三区| 亚洲一区二区四区蜜桃| 欧美日韩色综合| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美一级日韩免费不卡| 韩国av一区二区| 中文字幕一区二区三区不卡| 在线观看日韩电影| 日本欧美在线观看| 国产三级一区二区| 一本一道波多野结衣一区二区| 午夜精品久久久久久久久久| 久久综合九色综合欧美98| jlzzjlzz亚洲女人18| 亚洲福利一二三区| 国产亚洲精品aa| 欧美午夜一区二区三区| 国产精品一区二区三区乱码| 亚洲摸摸操操av| 2021中文字幕一区亚洲| 91福利视频网站| 久久99在线观看| 亚洲一级二级在线| 精品国产伦一区二区三区观看方式| 不卡的av在线| 精品制服美女丁香| 一区二区理论电影在线观看| 精品国产乱码久久久久久1区2区| 91视频91自| 韩国成人精品a∨在线观看| 亚洲综合另类小说| 国产区在线观看成人精品| 欧美色综合天天久久综合精品| 国产真实乱对白精彩久久| 一区二区三区影院| 国产精品婷婷午夜在线观看| 日韩一级免费观看| 91免费观看国产| 国产剧情一区二区| 丝袜亚洲精品中文字幕一区| 国产精品国产三级国产普通话99| 在线不卡欧美精品一区二区三区| 成人av动漫在线| 国产福利一区二区三区视频| 蜜桃视频在线一区| 亚洲成人www| 亚洲午夜视频在线观看| 中文字幕中文字幕一区二区| 亚洲精品一区二区三区影院| 欧美乱妇23p| 欧美伊人久久大香线蕉综合69| 成人少妇影院yyyy| 韩国av一区二区| 精品在线播放免费| 美脚の诱脚舐め脚责91| 日韩电影在线观看一区| 丝袜诱惑制服诱惑色一区在线观看| 亚洲激情中文1区| 一区二区三区中文在线观看| 亚洲视频香蕉人妖| 中文字幕在线播放不卡一区| 中文字幕不卡三区| 中文字幕电影一区| 欧美激情综合网| 国产精品三级电影| 中文字幕第一区综合| 中文在线免费一区三区高中清不卡| 精品国产一区二区三区不卡| 欧美不卡视频一区| 精品国产露脸精彩对白| 久久久久国产精品人| 国产视频亚洲色图| 亚洲欧洲精品成人久久奇米网| 中文字幕成人av| 亚洲免费成人av| 亚洲成人综合在线| 美洲天堂一区二卡三卡四卡视频| 美女在线一区二区| 国产精品一区二区你懂的| 成人黄色a**站在线观看| 99久久婷婷国产综合精品电影 | 国产成a人无v码亚洲福利| 国产精品18久久久久| 成人黄色大片在线观看| 欧洲精品在线观看| 日韩欧美三级在线| 久久久综合视频| 国产精品久久久爽爽爽麻豆色哟哟 | 国产精品久久久久久久岛一牛影视 | 成人av网址在线| 91久久线看在观草草青青| 欧美日本国产视频| 欧美精品一区二区三区在线播放| 欧美国产综合色视频| 一区二区三区中文字幕| 蜜臀久久久久久久| www.日韩av| 欧美日韩在线精品一区二区三区激情| 欧美顶级少妇做爰| 国产欧美日韩卡一| 亚洲va天堂va国产va久| 极品少妇xxxx精品少妇| 欧美精品粉嫩高潮一区二区| 日韩一级大片在线| 国产精品久久久一本精品| 午夜精品福利视频网站| 国产在线精品一区二区夜色| 99国产精品久久| 日韩欧美一级片| 1024国产精品| 国产中文一区二区三区| 欧美色大人视频| 亚洲欧美综合在线精品| 老司机免费视频一区二区| 91玉足脚交白嫩脚丫在线播放| 欧美一区二区视频在线观看| 国产精品麻豆视频| 精品一区二区三区欧美| 欧美调教femdomvk| 中文字幕在线观看不卡| 国产专区欧美精品| 在线播放日韩导航| 一区二区欧美国产| 成人免费看片app下载| 精品国产百合女同互慰| 亚洲一区二区三区自拍| 99久久国产综合精品女不卡| 久久丝袜美腿综合| 美腿丝袜在线亚洲一区| 91.com在线观看| 亚洲一区欧美一区| 91在线一区二区三区| 精品国产污网站| 久久国产免费看| 欧美一区日韩一区| 亚洲成a人片在线不卡一二三区| 成人精品电影在线观看| 久久久久久日产精品| 久久99国产精品成人| 91精品久久久久久久99蜜桃 | 欧美日韩国产综合草草| 亚洲精品成人少妇| 91网站最新地址| 国产精品久久久久久久久晋中 | 成人理论电影网| 国产亚洲福利社区一区| 国产一区视频在线看| 精品伦理精品一区| 精品一区二区久久| 欧美草草影院在线视频| 男男gaygay亚洲| 欧美变态凌虐bdsm| 国产精品亚洲人在线观看|