JavaFX需要在列中显示增量和减量
我想知道是否有人能帮我解决这个问题。 问题是:每当我单击Inc或Dec时,我需要在列中显示数字,如下所示:JavaFX需要在列中显示增量和减量,java,javafx,Java,Javafx,我想知道是否有人能帮我解决这个问题。 问题是:每当我单击Inc或Dec时,我需要在列中显示数字,如下所示: 1 2 3 4 3 2 1 当我按下重置菜单项时,我需要它将其重置为零。 我使用了相反的方法,但我不知道这是否是正确的方法 import javafx.application.Application; import javafx.event.*; import javafx.scene.*; import javafx.scene.control.*; import javafx
1
2
3
4
3
2
1
当我按下重置菜单项时,我需要它将其重置为零。
我使用了相反的方法,但我不知道这是否是正确的方法
import javafx.application.Application;
import javafx.event.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.control.Alert.*;
import javafx.scene.layout.*;
import javafx.stage.*;
import javafx.stage.FileChooser.*;
import javafx.geometry.*;
import java.util.*;
import java.io.*;
import javafx.scene.text.*;
public class StudentViewer4 extends Application implements EventHandler<ActionEvent> {
private Stage stage;
private Scene scene;
private VBox root = null;
private MenuBar mbarBar = new MenuBar();
private Menu mnuSystem = new Menu("Count");
private MenuItem miInc = new MenuItem("Inc");
private MenuItem miDec = new MenuItem("Dec");
private MenuItem miReset = new MenuItem("Reset");
private MenuItem miExit = new MenuItem("Exit");
private TextArea taData = new TextArea("0");
int counter = 0;
public static void main(String[] args) {
launch(args);
}
public void start(Stage _stage) throws Exception {
stage = _stage;
stage.setTitle("Menu Exercise");
mnuSystem.getItems().addAll(miInc, miDec, miReset, miExit);
mbarBar.getMenus().addAll(mnuSystem);
miInc.setOnAction(this);
miDec.setOnAction(this);
miReset.setOnAction(this);
miExit.setOnAction(this);
root = new VBox(mbarBar);
taData.setPrefHeight(400);
root.getChildren().add(taData);
scene = new Scene(root, 375, 175);
stage.setScene(scene);
stage.show();
}
public void handle(ActionEvent evt) {
String sourceText = "";
if (evt.getSource() instanceof Button) {
Button btn = (Button) evt.getSource();
sourceText = btn.getText();
} else if (evt.getSource() instanceof MenuItem) {
MenuItem mi = (MenuItem) evt.getSource();
sourceText = mi.getText();
} else
return;
switch (sourceText) {
case "Inc":
counter++;
taData.setText("" + counter);
break;
case "Dec":
counter--;
taData.setText("" + counter);
break;
case "Reset":
taData.setText("0");
counter = 0;
break;
case "Exit":
System.exit(0);
break;
}
}
}
导入javafx.application.application;
导入javafx.event.*;
导入javafx.scene.*;
导入javafx.scene.control.*;
导入javafx.scene.control.Alert.*;
导入javafx.scene.layout.*;
导入javafx.stage.*;
导入javafx.stage.FileChooser.*;
导入javafx.geometry.*;
导入java.util.*;
导入java.io.*;
导入javafx.scene.text.*;
公共类StudentViewer4扩展应用程序实现EventHandler{
私人舞台;
私密场景;
私有VBox root=null;
私有菜单栏mbarBar=新菜单栏();
私有菜单MNUSSystem=新菜单(“计数”);
私有MenuItem miInc=新MenuItem(“Inc”);
私有菜单项miDec=新菜单项(“Dec”);
private MenuItem miReset=新的MenuItem(“重置”);
私有菜单项miExit=新菜单项(“退出”);
私有TextArea taData=新TextArea(“0”);
int计数器=0;
公共静态void main(字符串[]args){
发射(args);
}
public void start(Stage _Stage)引发异常{
阶段=_阶段;
阶段。设置标题(“菜单练习”);
mnuSystem.getItems().addAll(miInc、miDec、miReset、miExit);
mbarBar.getMenus().addAll(mnuSystem);
miInc.设置动作(本);
miDec.setOnAction(本);
miReset.setOnAction(本);
miExit.setOnAction(本);
根=新的VBox(mbarBar);
taData.setPrefHeight(400);
root.getChildren().add(taData);
场景=新场景(根,375,175);
舞台场景;
stage.show();
}
公共无效句柄(ActionEvent evt){
字符串sourceText=“”;
if(evt.getSource()instanceof按钮){
按钮btn=(按钮)evt.getSource();
sourceText=btn.getText();
}else if(evt.getSource()实例为MenuItem){
MenuItem mi=(MenuItem)evt.getSource();
sourceText=mi.getText();
}否则
返回;
开关(源文本){
案例“公司”:
计数器++;
taData.setText(“+计数器);
打破
案例“Dec”:
计数器--;
taData.setText(“+计数器);
打破
案例“重置”:
taData.setText(“0”);
计数器=0;
打破
案例“退出”:
系统出口(0);
打破
}
}
}
不确定我是否正确理解了这个问题。但是,如果您询问如何水平显示所有inc/dec,可以通过追加文本来完成
public void handle(ActionEvent evt) {
String sourceText = "";
if (evt.getSource() instanceof Button) {
Button btn = (Button) evt.getSource();
sourceText = btn.getText();
} else if (evt.getSource() instanceof MenuItem) {
MenuItem mi = (MenuItem) evt.getSource();
sourceText = mi.getText();
} else {
return;
}
switch (sourceText) {
case "Inc":
counter++;
taData.setText(taData.getText()+" " + counter);
break;
case "Dec":
counter--;
taData.setText(taData.getText()+" " + counter);
break;
case "Reset":
taData.setText("0");
counter = 0;
break;
case "Exit":
System.exit(0);
break;
}
}
谢谢你,你是救命恩人!