你能帮我解决这个问题吗?
我在类<code>单元格</code>中创建按钮,并向该按钮添加一些默认操作。
public class Cell {
private Button button;
public Cell() {
this.button = new Button();
this.button.setOnAction(e -> System.out.println("Default action"));
}
public Button getButton() {
return button;
}
}
在< code>Game类中,我想给这个按钮添加额外的动作,但我也想保留默认动作。
public class Game {
public Game(Button button) {
// this add new action to button but delete previous one
// I want use both actions
button.setOnAction(e -> System.out.println("additional action"));
}
}
我知道新操作覆盖了以前的操作。因此,如果我单击按钮,它只会打印附加操作
。
public class Main extends Application{
public static void main(String[] args) {
launch();
}
@Override
public void start(Stage primaryStage) throws Exception {
Cell cell = new Cell();
Button button = cell.getButton();
Game game = new Game(button);
VBox vBox = new VBox(button);
Scene scene = new Scene(vBox);
primaryStage.setScene(scene);
primaryStage.show();
}
}
是否可以向按钮添加新操作并保留以前的连接?
JavaFX内置了对将多个处理程序附加到事件的支持。检查addEventHandler
和setEventHandler
的留档(当您调用任何setOn
前缀方法时会被调用)。需要记住的一件事是,附加addEventHandler
的处理程序将在setOn
方法之前触发,即附加setOnAction
的处理程序将最后触发。您可以将Game
更改为以下内容:
public class Game {
public Game(Button button) {
// this add new action to button but delete previous one
// I want use both actions
button.addEventHandler(ActionEvent.ACTION, e -> System.out.println("additional action"));
}
}
您可以在设置新操作之前获取当前操作,并同时调用旧操作和新操作:
public Game(Button button) {
EventHandler<ActionEvent> current = button.getOnAction();
button.setOnAction(e -> {
current.handle(e);
System.out.println("additional action");
});
}
问题内容: 我有五个按钮,是动态创建的。我的目标是:单击任何按钮以向其中添加活动类,当然还有其他任何人可以通过该活动类将其删除。我该如何实现? 问题答案: 您需要将状态引入组件并在事件处理程序中进行设置。例如render方法的输出: 事件处理程序(元素方法):
我已经用FXML定义了一个tableview。它类似于以下内容: Action列将在每一行中包含带有文本“Delete”的按钮。我有两个问题: 如何将此删除按钮添加到JavaFX中的每一行最后一个单元格? 如何获取已单击“删除”按钮的行的索引?(以便删除该行或进行其他事件处理工作)
我在Eclipse Oxygen.1a发行版(4.7.1a)中使用JavaFX构建了一个桌面应用程序,这将是我的第一个应用程序。我创建了一个名为PersonOverview.fxml的文件,并在代码中添加了以下代码; JavaFX Scene Builder 2.0似乎无法识别元素- 我想知道是否有一个替代方案。我想在GUI的右下方添加一组按钮到GUI中。类似这样的东西;
我正在试用新的dataview组件,我正在使用这个Sencha示例: http://www.sencha.com/blog/dive-into-dataview-with-sencha-touch-2-beta-2/ 在基顿列表项中,我删除了图像,现在我想添加三个按钮,上面写着:“电子邮件”、“脸书”和“推特”,而不是商店中的值。当用户点击每个按钮时,我想显示每个按钮各自的存储值。如何才能做到这一
我正在使用android 2.1,希望在Mapsavity上添加一个后退按钮。我在这一页上尝试了什么[在操作栏上显示后退按钮,但应用程序崩溃。我已经按照另一个论坛的建议将extends FragmentActivity替换为AppCompatActivity,但应用程序仍然崩溃。我知道这与操作栏有关,因为如果我删除它,应用程序就会工作。操作栏似乎为空。我被卡住了,已经启动了应用程序数次。下面是错误
一个解决方案是(如果我读对了的话)添加一个任意的JPanel,在这个例子中是一个标签。我的问题是在消息窗口中需要一个JComboBox对象,并且(与解决coffee_table的问题相同)使用JComboBox似乎删除了取消按钮。如果我将YES_NO_CANCEL_OPTION替换为OK_CANCEL_OPTION或question_message并不重要。 对于JOptionPane家族,我仍然