Browse Source

bug fix 键盘选择问题修复

master
XiaXiang 8 years ago
parent
commit
7e64ecdc8a
  1. 40
      designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java
  2. 28
      designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineTextField.java
  3. BIN
      designer/src/com/fr/design/mainframe/alphafine/images/remind.png

40
designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineDialog.java

@ -127,11 +127,7 @@ public class AlphaFineDialog extends UIDialog {
* 初始化全部组件 * 初始化全部组件
*/ */
private void initComponents() { private void initComponents() {
searchTextField = new AlphaFineTextField("AlphaFine"); initSearchTextField();
searchTextField.setFont(AlphaFineConstants.GREATER_FONT);
searchTextField.setBackground(Color.white);
searchTextField.setBorderPainted(false);
searchTextField.initKeyListener(this);
JPanel topPane = new JPanel(new BorderLayout()); JPanel topPane = new JPanel(new BorderLayout());
UILabel iconLabel = new UILabel(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/bigsearch.png"))); UILabel iconLabel = new UILabel(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/bigsearch.png")));
iconLabel.setPreferredSize(AlphaFineConstants.ICON_LABEL_SIZE); iconLabel.setPreferredSize(AlphaFineConstants.ICON_LABEL_SIZE);
@ -171,6 +167,17 @@ public class AlphaFineDialog extends UIDialog {
}); });
} }
/**
* 初始化输入框
*/
private void initSearchTextField() {
searchTextField = new AlphaFineTextField("AlphaFine");
initTextFieldKeyListener();
searchTextField.setFont(AlphaFineConstants.GREATER_FONT);
searchTextField.setBackground(Color.white);
searchTextField.setBorderPainted(false);
}
/** /**
* *
*/ */
@ -249,7 +256,6 @@ public class AlphaFineDialog extends UIDialog {
private void showSearchResult() { private void showSearchResult() {
if (searchResultPane == null) { if (searchResultPane == null) {
initSearchResultComponents(); initSearchResultComponents();
initTextFieldKeyListener();
} }
initSearchWorker(); initSearchWorker();
} }
@ -580,18 +586,33 @@ public class AlphaFineDialog extends UIDialog {
initMouseListener(); initMouseListener();
} }
/**
* 为textfield添加键盘监听器
*/
private void initTextFieldKeyListener() { private void initTextFieldKeyListener() {
/**
* 为textField添加键盘监听器按上下方向键时把焦点给list,实现键盘操作
*/
searchTextField.addKeyListener(new KeyAdapter() { searchTextField.addKeyListener(new KeyAdapter() {
@Override @Override
public void keyPressed(KeyEvent e) { public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_DOWN) { if (e.getKeyCode() == KeyEvent.VK_DOWN) {
searchResultList.requestFocus(); searchResultList.requestFocus();
searchResultList.setSelectedIndex(searchResultList.getSelectedIndex() + 1);
}
}
@Override
public void keyReleased(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_ESCAPE) {
if (StringUtils.isBlank(searchTextField.getText()) || ComparatorUtils.equals(searchTextField.getText(), searchTextField.getPlaceHolder())) {
AlphaFineDialog.this.setVisible(false);
} else {
searchTextField.setText(null);
}
} }
} }
}); });
} }
/** /**
@ -826,6 +847,7 @@ public class AlphaFineDialog extends UIDialog {
} }
} }
showResult(getSelectedValue());
ensureIndexIsVisible(getSelectedIndex()); ensureIndexIsVisible(getSelectedIndex());
} }

28
designer/src/com/fr/design/mainframe/alphafine/component/AlphaFineTextField.java

@ -1,15 +1,9 @@
package com.fr.design.mainframe.alphafine.component; package com.fr.design.mainframe.alphafine.component;
import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itextfield.UITextField;
import com.fr.general.ComparatorUtils;
import com.fr.report.web.button.Image; import com.fr.report.web.button.Image;
import com.fr.stable.StringUtils;
import java.awt.*; import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import static java.awt.event.KeyEvent.VK_ESCAPE;
/** /**
* Created by XiaXiang on 2017/3/21. * Created by XiaXiang on 2017/3/21.
@ -63,25 +57,7 @@ public class AlphaFineTextField extends UITextField {
this.image = image; this.image = image;
} }
/** public String getPlaceHolder() {
* 添加键盘监听器 return placeHolder;
*
* @param component
*/
public void initKeyListener(final Component component) {
addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode == VK_ESCAPE) {
if (StringUtils.isBlank(getText()) || ComparatorUtils.equals(getText(), placeHolder)) {
component.setVisible(false);
} else {
setText(null);
}
}
}
});
} }
} }

BIN
designer/src/com/fr/design/mainframe/alphafine/images/remind.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 KiB

After

Width:  |  Height:  |  Size: 161 KiB

Loading…
Cancel
Save