如果用户选择了“”
项,我希望使ComboBoxCelleDitor
可编辑。我尝试使用了两个Celleditor
,一个是TextCelleditor
,一个是ComboBoxCelleditor
。并且如果用户选择“”
项,CelleDitor
将切换到TextCelleDitor
。但不管用。因为ComboIndex
有一个ArrayOutOfBoundException
。有人能帮我修改我的代码吗?原始EditingSupport
的代码如下所示:
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TextCellEditor;
public class SecondColEdittingSupport extends EditingSupport {
private final TableViewer viewer;
private final CellEditor comboEditor;
private final CellEditor textEditor;
Logger logger = Logger.getLogger(this.getClass());
public static String[] names ={ " ","SMALLINT ", "INTEGER", "BIGINT",
"DECIMAL", "NUMERIC",
"REAL", "TIMESTAMP", "VARCHAR", "CHAR", "TEXT"};
public SecondColEdittingSupport(TableViewer viewer) {
super(viewer);
this.viewer = viewer;
comboEditor = new ComboBoxCellEditor(viewer.getTable(), names);
textEditor = new TextCellEditor(viewer.getTable());
}
private int getNameIndex(String name) {
for (int i = 1; i < SecondColEdittingSupport.names.length; i++) {
if (SecondColEdittingSupport.names[i].equals(name))
return i;
}
return 0;
}
@Override
protected CellEditor getCellEditor(Object element) {
String[] str = (String[]) element;
if (getNameIndex(str[1]) != 0) {
return comboEditor;
}
return textEditor;
}
@Override
protected boolean canEdit(Object element) {
return true;
}
@Override
protected Object getValue(Object element) {
String[] str = (String[]) element;
if (getNameIndex(str[1]) != 0) {
return getNameIndex(str[1]);
}
return str[1];
}
@Override
protected void setValue(Object element, Object userInputValue) {
String[] str = (String[]) element;
if (getNameIndex(str[1]) != 0) {
Integer comboIndex = (Integer) userInputValue;
str[1] = SecondColEdittingSupport.names[comboIndex];
} else {
str[1] = String.valueOf(userInputValue);
}
viewer.update(element, null);
}
}
堆栈跟踪显示如下:
ComboBoxCelleDitor
本身是可编辑的,因为它使用JFace Combo
(特别是Ccombo
)。可以很容易地覆盖选定的文本。在本例中,setvalue
返回-1
作为value
(在OP的代码UserInputValue
)。
因此,获得一个可编辑的ComboBoxCelleDitor
is就足以在setValue
-method中处理此值:
@Override
protected void setValue(Object element, Object value) {
if ((int)value == -1) {
str[1] = ((CCombo)editor.getControl()).getText();
} else {
str[1] = names[(int)value];
}
viewer.update(element, null);
}
在“SQL 编辑器”选项卡,你可以创建和编辑视图的 SELECT 语句 SQL。Navicat Data Modeler 为编辑视图定义提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置 sql 格式及更多。 【提示】当你在视图创建工具创建视图,SELECT 语句将会自动生成。 美化 SQL(仅适用于非 Essentials 版) 若要格式化凌乱的 SQL 代码到一个结构良好的脚本,你
在JavaFX 8中,我尝试在将新行添加到表中后编辑单元格,以优化用户体验。 选择了正确的行,但单元不会进入编辑模式。嗯,我很偶然地看到了这种情况,但很难再现。我做错了什么?
复制 剪切 字符 y x 行 yy dd 需先在可视模式中选取 p 在光标后粘贴 P 在光标前粘贴 u 撤消 Ctrl+r 重做 Ctrl+y 逐字克隆上一行内容 Ctrl+e 逐字克隆下一行内容
问题内容: 使用什么是能够编辑内容的最佳方法? 在我理想的情况下, 添加的 生日将是一个超链接,点击该链接将显示一个编辑表单-与带有更新按钮的当前添加表单相同。 实时预览(插播) HTML: App.js: 问题答案: 您应该将表单放在每个节点内,分别使用和启用和禁用编辑。像这样: 这里的关键点是: 我已将控件更改为本地范围 已添加到,因此我们可以在编辑时显示它 添加了带有的,以便在编辑时隐藏内容
在intellij中是否有一种方法可以编辑checkstyle规则?在Eclipse checkstyle插件中,您可以编辑IDE中的特定规则,它们是IntelliJ的类似插件吗?我尝试下载idea-checkstyle和QA-Plug插件,但这些似乎不能直接编辑checkstyle xml文件。
有没有一种方法(插件或其他)可以在Atom编辑器中使用拆分屏幕? 我查看了菜单,但找不到任何相关选项。