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

📄 searchdialog.java

📁 的说法科斯洛伐路上看到伐楼上的开发1科林麦克;
💻 JAVA
字号:
package org.loon.framework.ide.test.dialog;
/**
 * <p>Title: LoonFramework</p>
 * <p>Description:</p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company: LoonFramework</p>
 * @author chenpeng  
 * @email:ceponline@yahoo.com.cn 
 * @version 0.1
 */
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JTextPane;

import org.loon.framework.ide.test.JavaIDE;
import org.loon.framework.ide.test.LookAndFeel;



public class SearchDialog extends JDialog
    implements ActionListener
{

	    Container contentPane;
	    JTextField txtSearch;
	    JPanel pnlSearch;
	    JTextField txtChange;
	    JPanel pnlChange;
	    JPanel pnlNorth;
	    JLabel labelChange;
	    JCheckBox cbxChar;
	    JCheckBox cbxWay;
	    JLabel lblMsg;
	    JPanel pnlCenter;
	    JButton btnNext;
	    JButton btnChangeOne;
	    JButton btnChangeAll;
	    JButton btnCancel;
	    JPanel pnlEast;
	    private String strSearchText;
	    StringBuffer strBuf;
	    String str;
	    private JTextPane txtData;
	    JavaIDE owner;
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	public SearchDialog(JavaIDE javaide)
    {
        super(javaide, "JavaIDE : 检索/替换", false);
        txtSearch = new JTextField();
        pnlSearch = new JPanel();
        txtChange = new JTextField();
        pnlChange = new JPanel();
        pnlNorth = new JPanel();
        labelChange = new JLabel("替换文字 : ", 4);
        cbxChar = new JCheckBox("区别大小写", false);
        cbxWay = new JCheckBox("上下检索", false);
        lblMsg = new JLabel();
        pnlCenter = new JPanel();
        btnNext = new JButton("向下检索");
        btnChangeOne = new JButton("替换");
        btnChangeAll = new JButton("全部替换");
        btnCancel = new JButton("关闭");
        pnlEast = new JPanel();
        strSearchText = null;
        txtData = null;
        addWindowListener(new WindowAdapter() {

            public void windowClosing(WindowEvent windowevent)
            {
                setVisible(false);
            }

        });
        owner = javaide;
        contentPane = getContentPane();
        contentPane.setLayout(new BorderLayout(10, 10));
        pnlNorth.setLayout(new GridLayout(2, 1, 0, 5));
        pnlSearch.setLayout(new GridLayout(1, 2));
        pnlSearch.add(new JLabel("搜索列 : ", 4));
        pnlSearch.add(txtSearch);
        pnlChange.setLayout(new GridLayout(1, 2));
        pnlChange.add(labelChange);
        pnlChange.add(txtChange);
        pnlNorth.add(pnlSearch);
        pnlNorth.add(pnlChange);
        contentPane.add("North", pnlNorth);
        pnlCenter.setLayout(new GridLayout(3, 1));
        pnlCenter.add(cbxChar);
        pnlCenter.add(cbxWay);
        pnlCenter.add(lblMsg);
        contentPane.add("Center", pnlCenter);
        pnlEast.setLayout(new GridLayout(4, 1, 0, 5));
        pnlEast.add(btnNext);
        pnlEast.add(btnChangeOne);
        pnlEast.add(btnChangeAll);
        pnlEast.add(btnCancel);
        contentPane.add("East", pnlEast);
        btnNext.addActionListener(this);
        btnCancel.addActionListener(this);
        btnChangeOne.addActionListener(this);
        btnChangeAll.addActionListener(this);
        txtSearch.setFont(new Font("宋体", 0, 12));
        txtChange.setFont(new Font("宋体", 0, 12));
        setResizable(false);
        setLocationRelativeTo(javaide);
        pack();
    }

    public void setLookAndFeel()
    {
        LookAndFeel.setLookAndFeel(contentPane);
    }

    public void search(JTextPane jtextpane)
    {
        txtData = jtextpane;
        btnChangeOne.setEnabled(false);
        btnChangeAll.setEnabled(false);
        txtChange.setEnabled(false);
        labelChange.setEnabled(false);
        setVisible(true);
    }

    public void change(JTextPane jtextpane)
    {
        txtData = jtextpane;
        btnChangeOne.setEnabled(true);
        btnChangeAll.setEnabled(true);
        txtChange.setEnabled(true);
        labelChange.setEnabled(true);
        setVisible(true);
    }

    public void change(JTextPane jtextpane, String s)
    {
        txtSearch.setText(s);
        change(jtextpane);
        txtChange.requestFocus();
    }

    public void actionPerformed(ActionEvent actionevent)
    {
        Object obj = actionevent.getSource();
        if(obj == btnChangeOne)
            changeOne();
        if(obj == btnChangeAll)
            changeAll();
        if(obj == btnNext)
            searchNext();
        if(obj == btnCancel)
        {
            strSearchText = null;
            setVisible(false);
        }
        owner.catchFocus();
    }

    public boolean searchNext()
    {
        lblMsg.setText("");
        strSearchText = txtSearch.getText();
        if(strSearchText.equals(""))
            return false;
        String s = txtData.getText();
        if(!cbxChar.isSelected())
        {
            strSearchText = strSearchText.toLowerCase();
            s = s.toLowerCase();
        }

        int k = 0;
        boolean flag1 = cbxWay.isSelected();

        if(!flag1)
        {
            int i = txtData.getSelectionStart() + 1;
            k = s.indexOf(strSearchText, i);
        } else
        {
            int j = txtData.getSelectionStart() - 1;
            k = s.lastIndexOf(strSearchText, j);
        }
        if(k >= 0)
        {
            txtData.select(k, k + strSearchText.length());
        } else
        {
            lblMsg.setText("搜索完毕");
            return false;
        }
        return true;
    }

    /**
     * 变更数据
     * @return
     */
    public boolean changeOne()
    {
        strSearchText = txtSearch.getText();
        if(strSearchText.equals(""))
            return false;
        String s = txtData.getSelectedText();
        if(s==null)return false;
        if(!cbxChar.isSelected())
        {
            strSearchText = strSearchText.toLowerCase();
            s = s.toLowerCase();
        }
        if(!s.equals(strSearchText))
        {
            searchNext();
            return false;
        } else
        {
            txtData.replaceSelection(txtChange.getText());
            searchNext();
            return true;
        }
    }

    public boolean changeAll()
    {

        int i = JOptionPane.showConfirmDialog(owner, "是否替换?", "JavaIDE : 替换", 0);
        if(i == 0)
        {
            txtData.select(0, 0);
            cbxWay.setSelected(false);
            for(; searchNext(); txtData.replaceSelection(txtChange.getText()));
        } else
        {
            return false;
        }
        return true;
    }

   
}

⌨️ 快捷键说明

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