Browse Source

bug fix 键盘选择问题修复

master
XiaXiang 8 years ago
parent
commit
7e64ecdc8a
  1. 38
      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

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

@ -127,11 +127,7 @@ public class AlphaFineDialog extends UIDialog {
* 初始化全部组件
*/
private void initComponents() {
searchTextField = new AlphaFineTextField("AlphaFine");
searchTextField.setFont(AlphaFineConstants.GREATER_FONT);
searchTextField.setBackground(Color.white);
searchTextField.setBorderPainted(false);
searchTextField.initKeyListener(this);
initSearchTextField();
JPanel topPane = new JPanel(new BorderLayout());
UILabel iconLabel = new UILabel(new ImageIcon(getClass().getResource("/com/fr/design/mainframe/alphafine/images/bigsearch.png")));
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() {
if (searchResultPane == null) {
initSearchResultComponents();
initTextFieldKeyListener();
}
initSearchWorker();
}
@ -580,18 +586,33 @@ public class AlphaFineDialog extends UIDialog {
initMouseListener();
}
private void initTextFieldKeyListener() {
/**
* 为textField添加键盘监听器按上下方向键时把焦点给list,实现键盘操作
* 为textfield添加键盘监听器
*/
private void initTextFieldKeyListener() {
searchTextField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
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());
}

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

@ -1,15 +1,9 @@
package com.fr.design.mainframe.alphafine.component;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.general.ComparatorUtils;
import com.fr.report.web.button.Image;
import com.fr.stable.StringUtils;
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.
@ -63,25 +57,7 @@ public class AlphaFineTextField extends UITextField {
this.image = image;
}
/**
* 添加键盘监听器
*
* @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);
}
}
}
});
public String getPlaceHolder() {
return placeHolder;
}
}

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