如何在GUI中将方法结果打印到TextField?

时间:2015-10-24 19:19:51

标签: java swing

我正在制作二进制到十进制和后面的GUI转换器。

我有工作代码,我想出了如何在GUI中应用Binary-to-Decimal部分,但是我遇到了Decimal-to-Binaryone的问题。

首先让我解释一下我做了什么,以及什么对Bin-to-Dec有用:

我使用了这种方法(在主要区域之内,因为如果你知道我的意思,它在动作按钮区域没有工作):

public int stringToDec(String inputBin) {

    int decimal = 0;
    int power = 0;
    while (inputBin.length() > 0) {
        int temp = Integer.parseInt(inputBin.charAt((inputBin.length()) - 1) + "");
        decimal += temp * Math.pow(2, power++);
        inputBin = inputBin.substring(0, inputBin.length() - 1);

    }
    return decimal;
}

在操作按钮的"区域"我将结果转换为String并将其分配到我想要显示结果的文本字段:

String intstring = Integer.toString(stringToDec(inputBin)); 
resultDecField.setText(intstring);

它有效。但是当我尝试将相同的逻辑应用于Decimal-to-Binary时,我遇到了很多问题。 我将它用于Dec-to-Bin转换:

public int decToBinary(int inputDec) {
    do {
        System.out.print(inputDec % 2);
        inputDec /= 2;
    } while (inputDec > 0);

}

但我不能用System.out替换setText。我想我需要以某种方式在变量中捕获结果然后将其分配给字段。我对吗?但是如何以及变量是什么?也许是阵列?但我不知道该怎么做,也无法在网上找到任何东西。我被卡住了。

1 个答案:

答案 0 :(得分:0)

尝试以下代码,它应该可以正常工作

public int decToBinary(int inputDec) {
    String returnVal = "";
    do {
        returnVal = returnVal + (inputDec % 2);
        inputDec /= 2;
    } while (inputDec > 0);
    return Integer.parseInt(returnVal);
}