⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 replacedlg.java

📁 一个记事本程序
💻 JAVA
字号:
package notepad;

import javax.swing.*;
import javax.swing.event.*;

import java.awt.*;
import java.awt.event.*;

public class ReplaceDlg extends JDialog implements ActionListener,
		ItemListener, DocumentListener {
	// GUI components
	JLabel label1, label2;

	JTextField findText, replaceTo;

	JButton btn_findNext, btn_replace, btn_replaceAll, btn_cancel;

	JCheckBox ignoreCase;

	JPanel panel1, panel2;

	// 变量
	String source, destination;

	boolean isIgnoreCase = true;

	// "父窗口"
	NotePad notePad;

	/**
	 * 构造函数
	 * 
	 * @param notePad
	 *            主类NotePad的对象
	 */
	public ReplaceDlg(NotePad initNotePad) {
		setTitle("替换");
		notePad = initNotePad;
		notePad.mileStone = 0;
		Container con = getContentPane();
		panel1 = new JPanel();
		panel2 = new JPanel();
		con.setLayout(new BorderLayout());

		label1 = new JLabel("查找内容(N):");
		label2 = new JLabel("替换为(P):");
		findText = new JTextField(25);
		findText.getDocument().addDocumentListener(this);
		replaceTo = new JTextField(25);
		ignoreCase = new JCheckBox("区分大小写(C)");
		ignoreCase.addItemListener(this);
		panel1.add(label1);
		panel1.add(findText);
		panel1.add(label2);
		panel1.add(replaceTo);
		panel1.add(ignoreCase);

		btn_findNext = new JButton("查找下一个(F)");
		btn_replace = new JButton("替换(R)");
		btn_replaceAll = new JButton("全部替换(A)");
		btn_cancel = new JButton("取消");
		btn_findNext.addActionListener(this);
		btn_replace.addActionListener(this);
		btn_replaceAll.addActionListener(this);
		btn_cancel.addActionListener(this);
		btn_findNext.setEnabled(false);
		btn_replace.setEnabled(false);
		btn_replaceAll.setEnabled(false);
		panel2.add(btn_findNext);
		panel2.add(btn_replace);
		panel2.add(btn_replaceAll);
		panel2.add(btn_cancel);

		con.add(panel1, BorderLayout.CENTER);
		con.add(panel2, BorderLayout.SOUTH);

		setSize(400, 150);
		setVisible(false);
	}

	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if (e.getSource() == btn_findNext) {
			source = findText.getText();
			// 调用搜索函数来搜索整个工作区中的文字
			if (!notePad.OnFindMenuItem(source, isIgnoreCase)) {
				JOptionPane
						.showMessageDialog(null, "找不到关键字 \"" + source + "\"");
			}
		} else if (e.getSource() == btn_replace) {
			if (notePad.note.getSelectedText() == null) {
				source = findText.getText();
				// 调用搜索函数来搜索整个工作区中的文字
				if (!notePad.OnFindMenuItem(source, isIgnoreCase)) {
					JOptionPane.showMessageDialog(null, "找不到关键字 \"" + source
							+ "\"");
					return;
				}
			}
			destination = replaceTo.getText();
			notePad.note.replaceSelection(destination);
			source = findText.getText();
			// 调用搜索函数来搜索整个工作区中的文字
			if (!notePad.OnFindMenuItem(source, isIgnoreCase)) {
				JOptionPane
						.showMessageDialog(null, "找不到关键字 \"" + source + "\"");
			}
		} else if (e.getSource() == btn_replaceAll) {
			source = findText.getText();
			destination = replaceTo.getText();
			notePad.replaceAll(source, destination, isIgnoreCase); 
			
		} else if (e.getSource() == btn_cancel) {
			this.setVisible(false);
			this.dispose();
		}
	}

	public void itemStateChanged(ItemEvent e) {
		// TODO Auto-generated method stub
		if (e.getSource() == ignoreCase) {
			isIgnoreCase = ignoreCase.isSelected() ? false : true;
		}
	}

	public void changedUpdate(DocumentEvent e) {
		// TODO Auto-generated method stub
	}

	public void insertUpdate(DocumentEvent e) {
		// TODO Auto-generated method stub
		int length = findText.getText().length();
		if (length > 0) {
			btn_findNext.setEnabled(true);
			btn_replace.setEnabled(true);
			btn_replaceAll.setEnabled(true);
		} else {
			btn_findNext.setEnabled(false);
			btn_replace.setEnabled(false);
			btn_replaceAll.setEnabled(false);
		}
	}

	public void removeUpdate(DocumentEvent e) {
		// TODO Auto-generated method stub
		int length = findText.getText().length();
		if (length > 0) {
			btn_findNext.setEnabled(true);
			btn_replace.setEnabled(true);
			btn_replaceAll.setEnabled(true);
		} else {
			btn_findNext.setEnabled(false);
			btn_replace.setEnabled(false);
			btn_replaceAll.setEnabled(false);
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -