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

📄 xfindlayout.java

📁 XBrowser是一个完全免费并且开源的Web浏览器
💻 JAVA
字号:
/****************************************************************
*              XBrowser  -  eXtended web Browser                *
*                                                               *
*           Copyright (c) 2000-2001  Armond Avanes              *
*     Refer to ReadMe & License files for more information      *
*                                                               *
*                                                               *
*                      By: Armond Avanes                        *
*       Armond555@yahoo.com     &    Armond333@yahoo.com        *
*                http://xbrowser.sourceforge.net/               *
*****************************************************************/
package xbrowser.screen;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;

import xbrowser.*;
import xbrowser.doc.*;
import xbrowser.util.*;
import xbrowser.widgets.*;

public class XFindLayout extends XDialog
{
	private void addToContainer(Component comp,Container container,GridBagLayout gridbag,GridBagConstraints constraints,int grid_width,double weight_x)
	{
        constraints.gridwidth = grid_width;
        constraints.weightx = weight_x;
        gridbag.setConstraints(comp, constraints);
		container.add(comp);
	}

	public XFindLayout()
	{
		super(false);

		setTitle( XRepository.getResourceManager().getProperty(this, "Title") );
    	btnFind = buildButton(new FindAction());

	JPanel pnl_east_north = new JPanel( new GridLayout(2,1,5,10) );
	JPanel pnl_east = new JPanel( new BorderLayout() );

		getContentPane().setLayout( new BorderLayout() );

		pnl_east_north.add( btnFind );
		pnl_east_north.add( buildButton(new CloseAction()) );

		pnl_east.add(pnl_east_north, BorderLayout.NORTH);

		getContentPane().add(getDocumentPage(), BorderLayout.CENTER);
		getContentPane().add(pnl_east, BorderLayout.EAST);

        registerListeners();
        setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
        pack();
        //setResizable(false);

        getRootPane().setDefaultButton(btnFind);
	}

    private void registerListeners()
    {
        txfDocumentFindPhrase.addActionListener( new ActionListener() {
			public void actionPerformed(ActionEvent e)
			{
				btnFind.doClick();
			}
		});
	}

    private JPanel getDocumentPage()
    {
    GridBagLayout gridbag = new GridBagLayout();
    GridBagConstraints constraints = new GridBagConstraints();
    JPanel pnl = new JPanel(gridbag);

        constraints.fill = GridBagConstraints.HORIZONTAL;
        constraints.insets = new Insets(5,5,5,5);

		cmbDirection.addItem( XRepository.getResourceManager().getProperty(this, "UpDirection") );
		cmbDirection.addItem( XRepository.getResourceManager().getProperty(this, "DownDirection") );
		cmbDirection.setSelectedIndex(1);

		addToContainer(buildLabel(this, "FindSubject"),pnl,gridbag,constraints,1,0);
		addToContainer(txfDocumentFindPhrase,pnl,gridbag,constraints,GridBagConstraints.REMAINDER,1);
		addToContainer(chkMatchWholeWord,pnl,gridbag,constraints,2,1);
		addToContainer(chkMatchCase,pnl,gridbag,constraints,GridBagConstraints.REMAINDER,1);
		addToContainer(buildLabel(this, "Direction"),pnl,gridbag,constraints,1,0);
		addToContainer(cmbDirection,pnl,gridbag,constraints,1,1);
		addToContainer(Box.createHorizontalGlue(),pnl,gridbag,constraints,GridBagConstraints.REMAINDER,1);

		return pnl;
	}

    public void findInDocument()
    {
    XDocument document = XBrowser.getBrowser().getDocumentContainer().getActiveDocument();

    	if( document==null )
    	{
		String message = XRepository.getResourceManager().getProperty(this, "NoActiveDocument");
		String title = XRepository.getResourceManager().getProperty(this, "Warning");

	        JOptionPane.showMessageDialog(this, message, title, JOptionPane.WARNING_MESSAGE);
			return;
		}

    	try
    	{
    		document.getRenderer().findNext(txfDocumentFindPhrase.getText(), chkMatchCase.isSelected(), chkMatchWholeWord.isSelected(), cmbDirection.getSelectedItem().equals("Up"));
		}
		catch( Exception e )
		{
		String title = XRepository.getResourceManager().getProperty(this, "Warning");

	        JOptionPane.showMessageDialog(this, e.getMessage(), title, JOptionPane.WARNING_MESSAGE);
		}
    }

    private class FindAction extends XDefaultAction
    {
        public FindAction()
        {
            super(XFindLayout.this, "Find", null);
        }

        public void actionPerformed(ActionEvent e)
        {
			findInDocument();
        }
    }

    private class CloseAction extends XDefaultAction
    {
        public CloseAction()
        {
            super(XFindLayout.this, "Close", null);
        }

        public void actionPerformed(ActionEvent e)
        {
		    setVisible(false);
        }
    }

// Attributes:
    private JTextField txfDocumentFindPhrase = new JTextField(20);
    private JCheckBox chkMatchWholeWord = buildCheckBox(this, "WholeWord");
    private JCheckBox chkMatchCase = buildCheckBox(this, "CaseSensitive");
    private JComboBox cmbDirection = new JComboBox();
    private JButton btnFind;
}

⌨️ 快捷键说明

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