使用Java语言,设计一个程序,实现求取两个正整数的最大公约数。要求:在窗口中有三个文本框和两个按钮。第一个按钮,上的文字为“最大公约数”;第二个按钮上的文字为“关闭”。当单击按钮“最大公约数”时,能够把前两个文本框中正整数的最大公约数存放在第三个文本框中。单击按钮“关闭”,则程序结束。
目前只找到了直接在控制台输出结果的java代码,不会做成窗口展示出来。希望有朋友帮帮忙,可以在此基础上优化或者直接重新写,有打赏的,十分感谢!

使用Java语言,设计一个程序,实现求取两个正整数的最大公约数。要求:在窗口中有三个文本框和两个按钮。第一个按钮,上的文字为“最大公约数”;第二个按钮上的文字为“关闭”。当单击按钮“最大公约数”时,能够把前两个文本框中正整数的最大公约数存放在第三个文本框中。单击按钮“关闭”,则程序结束。
目前只找到了直接在控制台输出结果的java代码,不会做成窗口展示出来。希望有朋友帮帮忙,可以在此基础上优化或者直接重新写,有打赏的,十分感谢!

关注
package tt;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GCDApp {
public static void main(String[] args) {
// 创建主窗口
JFrame frame = new JFrame("GCD Calculator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 200);
frame.setLayout(new GridBagLayout());
// 创建文本框
JTextField textField1 = new JTextField(10);
JTextField textField2 = new JTextField(10);
JTextField textFieldResult = new JTextField(10);
textFieldResult.setEditable(false); // 结果框设为不可编辑
// 创建按钮
JButton gcdButton = new JButton("最大公约数");
JButton closeButton = new JButton("关闭");
// 创建布局约束
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(5, 5, 5, 5); // 设置组件之间的间距
gbc.fill = GridBagConstraints.HORIZONTAL;
// 添加组件到窗口
gbc.gridx = 0;
gbc.gridy = 0;
frame.add(new JLabel("第一个正整数:"), gbc);
gbc.gridx = 1;
frame.add(textField1, gbc);
gbc.gridx = 0;
gbc.gridy = 1;
frame.add(new JLabel("第二个正整数:"), gbc);
gbc.gridx = 1;
frame.add(textField2, gbc);
gbc.gridx = 0;
gbc.gridy = 2;
frame.add(new JLabel("最大公约数:"), gbc);
gbc.gridx = 1;
frame.add(textFieldResult, gbc);
gbc.gridx = 0;
gbc.gridy = 3;
frame.add(gcdButton, gbc);
gbc.gridx = 1;
frame.add(closeButton, gbc);
// 添加按钮事件监听器
gcdButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
int num1 = Integer.parseInt(textField1.getText());
int num2 = Integer.parseInt(textField2.getText());
if (num1 <= 0 || num2 <= 0) {
JOptionPane.showMessageDialog(frame, "请输入正整数", "错误", JOptionPane.ERROR_MESSAGE);
return;
}
int gcd = findGCD(num1, num2);
textFieldResult.setText(String.valueOf(gcd));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(frame, "请输入有效的整数", "错误", JOptionPane.ERROR_MESSAGE);
}
}
});
closeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
// 显示窗口
frame.setVisible(true);
}
// 求两个正整数的最大公约数
private static int findGCD(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
}