gpt4 book ai didi

java - 如何在按下按钮时运行包含 for 循环的方法

转载 作者:行者123 更新时间:2023-11-30 06:38:50 24 4
gpt4 key购买 nike

我正在尝试制作一个简单的 GUI 应用程序,当您在文本字段中输入整数(即“w”)时,它会被放入 for 循环中,并且循环运行“w”次。当它运行时,我希望它在每次循环运行时打印一个“X”。希望当您看到代码时会更有意义。一些帮助将不胜感激。

提前致谢。

import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.JTextComponent;

public class Main {

public static void main(String[] args) {
JFrame f = new JFrame();// creating instance of JFrame

int w = 0;

JTextField textfield = new JTextField();
JTextArea textarea = new JTextArea(6, 37);
JButton bSquare = new JButton("Square");// creating instance of JButton
JButton bRATriangle = new JButton("Right Angle Triangle");
JButton bETriangle = new JButton("Equilateral Triangle");

bSquare.setBounds(0, 100, 200, 40);
bRATriangle.setBounds(200, 100, 200, 40);
bETriangle.setBounds(400, 100, 200, 40);
textarea.setBounds(0, 500, 600, 100);
textfield.setBounds(200, 200, 200, 80);

textfield.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try{
int w = Integer.parseInt(textfield.getText());
textarea.setText(String.valueOf(w));
} catch(NumberFormatException nfe){
textarea.setText("Error!");
}
}
});

bSquare.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
for(int j = 0; j < w; j++) {
textarea.append("");
for(int i = 0; i < w; i++) {
textarea.append("X");
}
}
}
});

最佳答案

我只需在 bSquare 按钮的操作监听器中执行所有逻辑。另外,您不需要使用 int w = 0;,因为无论如何它都无法在操作监听器之间正确共享。

示例:

bSquare.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
// just use a new variable here
// default to 0 (if a NumberFormatException occurs)
int val = 0;
try
{
val = Integer.parseInt(textfield.getText());
textarea.setText(String.valueOf(val));
}
catch (NumberFormatException nfe)
{
textarea.setText("Error!");
}

for (int j = 0; j < val; j++)
{
textarea.append("");
for (int i = 0; i < val; i++)
{
textarea.append("X");
}
}
}
});

关于java - 如何在按下按钮时运行包含 for 循环的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44750998/

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