📄 xfindlayout.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 + -