Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX需要在列中显示增量和减量_Java_Javafx - Fatal编程技术网

JavaFX需要在列中显示增量和减量

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

我想知道是否有人能帮我解决这个问题。 问题是:每当我单击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.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;
    }
}

谢谢你,你是救命恩人!