gpt4 book ai didi

java - 对我的 GUI 编程与 Java 中的递归集成的一点帮助

转载 作者:行者123 更新时间:2023-12-01 11:02:34 25 4
gpt4 key购买 nike

我的 Java GUI 程序需要一些帮助。我的程序使用 GUI 界面来获取用户的第 n 项;然后,它计算该项的斐波那契数并将其打印在界面中。请看一下我的程序。我想知道两件事:

  1. 如何将变量分配给 fib 函数中的返回值?
  2. 将变量设置为返回值后,我希望在 actionPerformed 方法中访问该变量,以便可以将其打印到界面。

程序

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class GUIwithRecursion extends Applet implements ActionListener
{
public static TextField numberTF = new TextField ();
public static TextField fibTF = new TextField();

int result = fib(numberN);

public void init()
{
setBackground(Color.magenta);
Label numberLB = new Label("n= ");
Button calcBN = new Button("Calculate");
Label fibLB = new Label("fib(n)= ");

setLayout(null);
numberLB.setBounds(10, 30, 100, 20);
numberTF.setBounds(10, 50, 100, 20);
numberTF.setBackground(Color.yellow);
fibLB.setBounds(10, 70, 100, 20);
fibTF.setBounds(10, 90, 100, 20);
fibTF.setBackground(Color.red);
calcBN.setBounds(10, 110, 100, 20);

add(numberLB);
add(numberTF);
add(fibLB);
add(fibTF);
add(calcBN);

calcBN.addActionListener(this);
}

public static int fib(int numberN)
{
if (numberN<=1)
{return 1;}

else
{return fib(numberN-1)+fib(numberN-2);}
}

public void actionPerformed(ActionEvent e)
{

int result = fib(numberN);
fibTF.setText(Integer.toString(result));

}
}

最佳答案

1) How do I assign a variable to the return value in the fib function?

int number = Integer.parseInt(numberTF.getText());
int result = fib(number);

2) After setting a variable to the return value, I want to have an access to that variable in my actionPerformed function, so I can print it to the interface.

更好的解决方案是在 actionPerformed 方法中执行计算

public void actionPerformed(ActionEvent e) {
int number = Integer.parseInt(numberTF.getText());
int result = fib(number);
fibTF.setText(Integer.toString(result));
}

下一个问题是,为什么使用 Applet 以及 AWT 库?两者都已被 Swing(现在是 JavaFX)取代,并且小程序现在已被大多数浏览器主动阻止。

您通常会获得对 Swing 和 JavaFX 更好的支持,并且现在大多数人都在使用这些库来开发纯 AWT

避免使用 null 布局,像素完美布局是现代 UI 设计中的一种幻觉。影响组件个体尺寸的因素太多,您无法控制其中任何一个。 Swing 的设计初衷是与布局管理器一起工作,放弃它们将导致无穷无尽的问题,您将花费越来越多的时间来尝试纠正

看看Laying Out Components Within a Container了解更多详情

关于java - 对我的 GUI 编程与 Java 中的递归集成的一点帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33226394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com