Javafx应用程序(计算器)在其他计算机上不起作用

我已经使用javafx制作了一个计算器(我是初学者)。在我的计算机上工作正常。当我与朋友分享时,只有这样的舞台被加载...

Javafx应用程序(计算器)在其他计算机上不起作用

在计算机上... [![就是这个,一个简单的计算器] [2]] [2]

作为Java程序员,这是我的第一个项目。如果您能帮我解决这个问题,那就太好了。

好吧,我已经使用Netbeans IDE创建了它,共有三个类。 Calculate.java(用于计算) JavaFXApplication8.java(扩展应用程序) 和FXMLDocumentController.java(用于控制FXML文件)

public class JavaFXApplication8 extends Application {
    
    @Override
    public void start(Stage stage) throws Exception {
        stage.initStyle(StageStyle.UNIFIED);
        stage.setMaxHeight(350);
        stage.setMaxWidth(360);
        stage.setResizable(false);
        Parent root = FXMLLoader.load(getclass().getResource("FXMLDocument.fxml"));
        stage.setTitle("Calculator");
        Scene scene = new Scene(root);
        
        Image icon=new Image("Calculator-icon.png");        
        stage.getIcons().add(icon);
        stage.setScene(scene);
        
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

public class FXMLDocumentController implements Initializable {

    public static String a="";

    private void SetLabel(actionEvent event) {  
        result.setText(a);
    }

    @FXML
    private void Onepressed(actionEvent event) {
        a=a.concat("1");
        result.setText(a);
    }

    @FXML
    private void Twopressed(actionEvent event) {
       a=a.concat("2");
       result.setText(a);
    }

    @FXML
    private void Threepressed(actionEvent event) {
       a=a.concat("3");
       result.setText(a);
    }

    @FXML
    private void Fourpressed(actionEvent event) {
       a=a.concat("4");
       result.setText(a);
    }

    @FXML
    private void Fivepressed(actionEvent event) {
       a=a.concat("5");
       result.setText(a);
    }

    @FXML
    private void Sixpressed(actionEvent event) {
       a=a.concat("6");
       result.setText(a);
    }

    @FXML
    private void Sevenpressed(actionEvent event) {
       a=a.concat("7");
       result.setText(a);
    }

    @FXML
    private void Eightpressed(actionEvent event) {
       a=a.concat("8");
       result.setText(a);
    }

    @FXML
    private void Ninepressed(actionEvent event) {
       a=a.concat("9");
       result.setText(a);
    }

    @FXML
    private void Zeropressed(actionEvent event) {
       a=a.concat("0");
       result.setText(a);
    }

    @FXML
    private void Pointpressed(actionEvent event) {
       a=a.concat(".");
       result.setText(a);
    }

    @FXML
    private void Delpressed(actionEvent event) {
       a=Calculate.Del(a);
       result.setText(a);
    }

    @FXML
    private void ACpressed(actionEvent event) {
       a="";
       result.setText(a);
    }

    @FXML
    private void Addpressed(actionEvent event) { 
       a=a.concat("+");
       result.setText(a);
    }
    
    @FXML
    private void Subtractpressed(actionEvent event) { 
       a=a.concat("-");
       result.setText(a);
    }
    
    @FXML
    private void Multiplypressed(actionEvent event) { 
       a=a.concat("*");
       result.setText(a);
    }
    
    @FXML
    private void Dividepressed(actionEvent event) { 
       a=a.concat("/");
       result.setText(a);
    }

    @FXML
    private void Percentpressed(actionEvent event) {
        if(a.contains("/")){
            a=Calculate.divide(a);
            float percent=Float.valueOf(a);
            percent*=100;
            result.setText(String.valueOf(percent).concat("%"));
        }
        else{
            result.setText("Syntax error");
        }
    }
    
    @FXML
    private void Result(actionEvent event) {
        try {
            for (int i = 1; i < a.length(); i++) {
              char ch=a.charAt(i);
                
             switch (ch) {
                 case '+':
                     a=Calculate.add(a);
                     result.setText(" = "+a);
                     break;
                 case '-':
                     a=Calculate.subtract(a);
                     result.setText(" = "+a);
                     break;
                 case '*':
                     a=Calculate.multiply(a);
                     result.setText(" = "+a);
                     break;
                 case '/':
                     a=Calculate.divide(a);
                     result.setText(" = "+a);
                     break;
                 default:
                     break;
             }
        }
        } catch (Exception e) {
            result.setText("Syntax error");
        }
    }
    
    @Override
    public void initialize(URL url,ResourceBundle rb) {
        // TODO
    }    

    @FXML
    private void SetLabel(MouseEvent event) {
    }
}

public class Calculate {
    public static String result;
    
    public static String add(String s){
        int d=0;
        String fist="";
        String secon="";
        
        char ch='+';
        for (int i = 0; i < s.length(); i++) {
            char ch2=s.charAt(i);
            if(ch==ch2){
                fist=s.substring(0,i);
                secon=s.substring(i+1,s.length());
            }
        }
        float a=Float.valueOf(fist);
        float b=Float.valueOf(secon);
        float c=a+b;
        
        if(String.valueOf(c).endsWith(".0")){
             result=String.valueOf(c).substring(0,String.valueOf(c).length()-2);
        }
        else{
            result=String.valueOf(c);
        }
        return result;
    }

    public static String subtract(String s){
        String fist="";
        String secon="";
        
        char ch='-';
        for (int i = 0; i < s.length(); i++) {
            char ch2=s.charAt(i);
            if(ch==ch2){
                fist=s.substring(0,s.length());
            }
        }
        float a=Float.valueOf(fist);
        float b=Float.valueOf(secon);
        float c=a-b;
       
        if(String.valueOf(c).endsWith(".0")){
             result=String.valueOf(c).substring(0,String.valueOf(c).length()-2);
        }
        else{
            result=String.valueOf(c);
        }
        return result;
    }

    public static String multiply(String s){
        String fist="";
        String secon="";
        
        char ch='*';
        for (int i = 0; i < s.length(); i++) {
            char ch2=s.charAt(i);
            if(ch==ch2){
                fist=s.substring(0,s.length());
            }
        }
        float a=Float.valueOf(fist);
        float b=Float.valueOf(secon);
        float c=a*b;
       
        if(String.valueOf(c).endsWith(".0")){
             result=String.valueOf(c).substring(0,String.valueOf(c).length()-2);
        }
        else{
            result=String.valueOf(c);
        }
        return result;
    }

    public static String divide(String s){
        String fist="";
        String secon="";
        
        char ch='/';
        for (int i = 0; i < s.length(); i++) {
            char ch2=s.charAt(i);
            if(ch==ch2){
                fist=s.substring(0,s.length());
            }
        }
        float a=Float.valueOf(fist);
        float b=Float.valueOf(secon);
        float c=a/b;
       
        if(String.valueOf(c).endsWith(".0")){
             result=String.valueOf(c).substring(0,String.valueOf(c).length()-2);
        }
        else{
            result=String.valueOf(c);
        }
        return result;
    }

    public static String Del(String s){
        int len=s.length();
        s=s.substring(0,len-1);
        return s;
    }
    }

它有点长,但是请仔细阅读。对于任何尝试回答它的人来说,这都很简单。

iCMS 回答:Javafx应用程序(计算器)在其他计算机上不起作用

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2051677.html

大家都在问