我在'使用tomcat安装'模式下使用tomcat和eclipse.我的问题是,eclipse每次都会覆盖tomcats server.xml,并删除我的crossContext ="true"元素.
我应该使用自定义位置吗?或者eclipse设置错了?
谢谢!
我的问题是,使用setValue()选择后,选定的ComboBox项目文本在屏幕上不可见.以下是一些细节:向我的CB添加项目:
combo.getItems().add("a");
combo.getItems().add("b");
combo.getItems().add("c");
combo.getItems().add("d");
Run Code Online (Sandbox Code Playgroud)
然后,当按下按钮A时:
combo.setValue(null);
Run Code Online (Sandbox Code Playgroud)
按下按钮B时:
combo.setValue("a");
Run Code Online (Sandbox Code Playgroud)
现在,如果我先按下按钮B,会显示"a",没关系.之后,如果我按下按钮A,ComboBox上没有显示任何文本,那就没问题.然后我按B,屏幕上的值没有变化.但是,如果我单击CB,则突出显示"a"的行,combo.getValue()返回"a".
任何建议如何处理这个?
我想在 listView 的行上使用上下文菜单项。在listView的MOUSE_CLICKED事件的事件处理程序中,getSelectionModel().getSelectedItem()返回选定的项目,没关系。但是,当我处理 contextMenuItem 的 onAction 事件时,它返回 null。然而,以图形方式该项目被选择。有没有办法在第一次事件处理后“保留”选择?
这是代码的相关部分:
ListView<Text> nameList = new ListView<>();
final ContextMenu cCm = new ContextMenu();
MenuItem cItem = new MenuItem("someText");
cCm.getItems().add(cItem);
Run Code Online (Sandbox Code Playgroud)
...
nameList.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
if (e.getButton() == MouseButton.SECONDARY) {
//its OK here:
System.out.println(nameList.getSelectionModel().getSelectedItem().getText());
cCm.show(nameList, e.getScreenX(), e.getScreenY());
}
}
});
cItem.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
final Stage dialog = new Stage();
dialog.initModality(Modality.WINDOW_MODAL);
//nullPointerException on the following:
Text t = new Text(nameList.getSelectionModel().getSelectedItem().getText());
//showing dialog, etc.
Run Code Online (Sandbox Code Playgroud)