diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java index 20187bd50..94a612b66 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java @@ -205,6 +205,7 @@ public class JDBCDefPane extends JPanel { jdbcDatabase = new JDBCDatabaseConnection(); } this.jdbcDatabase = jdbcDatabase; + this.dbtypeComboBox.removeActionListener(dbtypeActionListener); if (ComparatorUtils.equals(jdbcDatabase.getDriver(), "sun.jdbc.odbc.JdbcOdbcDriver") && jdbcDatabase.getURL().startsWith("jdbc:odbc:Driver={Microsoft")) { this.dbtypeComboBox.setSelectedItem("Access"); @@ -229,6 +230,7 @@ public class JDBCDefPane extends JPanel { this.dbtypeComboBox.setSelectedItem(OTHER_DB); } } + this.dbtypeComboBox.addActionListener(dbtypeActionListener); this.driverComboBox.setSelectedItem(jdbcDatabase.getDriver()); this.urlTextField.setText(jdbcDatabase.getURL()); this.userNameTextField.setText(jdbcDatabase.getUser()); diff --git a/designer-base/src/main/java/com/fr/design/gui/itextfield/UINumberField.java b/designer-base/src/main/java/com/fr/design/gui/itextfield/UINumberField.java index 62d24c56a..0d1287d8c 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itextfield/UINumberField.java +++ b/designer-base/src/main/java/com/fr/design/gui/itextfield/UINumberField.java @@ -4,16 +4,11 @@ import com.fr.base.Utils; import com.fr.general.ComparatorUtils; import com.fr.stable.CoreConstants; import com.fr.stable.StringUtils; - -import javax.swing.event.CaretEvent; -import javax.swing.event.CaretListener; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.PlainDocument; import java.awt.Dimension; import java.awt.Toolkit; -import java.awt.event.InputMethodEvent; -import java.awt.event.InputMethodListener; /** * Number Field. @@ -39,11 +34,6 @@ public class UINumberField extends UITextField { private boolean isContentChanged = false; private boolean fillNegativeNumber = true; - /** - * 输入法输入完成一个字符输入过程的标记。开始输入的时候是true,输入完矫正光标后为false - */ - private boolean isInputMethodOnceInserting = false; - private int insertOffset = 0; public UINumberField() { this(MAX_INTEGERLENGTH_32, MAX_DECIMALLENGTH); @@ -64,7 +54,6 @@ public class UINumberField extends UITextField { this.minValue = minValue; this.maxValue = maxValue; setFieldDocument(); - initFieldListener(); } public void setFieldDocument() { @@ -72,31 +61,6 @@ public class UINumberField extends UITextField { initListener(); } - private void initFieldListener() { - addInputMethodListener(new InputMethodListener() { - @Override - public void inputMethodTextChanged(InputMethodEvent event) { - isInputMethodOnceInserting = true; - } - - @Override - public void caretPositionChanged(InputMethodEvent event) { - } - }); - - addCaretListener(new CaretListener() { - @Override - public void caretUpdate(CaretEvent e) { - if (isInputMethodOnceInserting) { - isInputMethodOnceInserting = false; - setCaretPosition(insertOffset); - } else { - insertOffset = e.getDot(); - } - } - }); - } - public void canFillNegativeNumber(boolean fillNegativeNumber) { this.fillNegativeNumber = fillNegativeNumber; } @@ -221,13 +185,6 @@ public class UINumberField extends UITextField { super.insertString(offset, s, a); } - public void remove(int offs, int len) throws BadLocationException { - if (isInputMethodOnceInserting) { - return; - } - super.remove(offs, len); - } - // kunsnat: 这种限制输入 有个不好的地方, 比如删除时: 10.1 最大值限定100, 那么就删除中间的小数点之后变为101, 超出了100. // 但是直接限制不能删除中间类似小数点, 那么也可能遇到: 最小值10 , 从100变化到其中的19, 就很难.. private boolean notChange(String strNew) {