求两个正整数的最大公约数。
package 最大公约数;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class MaximalCommonDivisor {
JFrame jframe;
JPanel jp1,jp2,jp3;
JLabel jl1,jl2,jl3;
JButton jbtn1,jbtn2,jbtn3;
JTextField jt1,jt2,jt3;
Box box;
public void go(){
jl1 = new JLabel("Maximal Common Divisor(最大公约数)");
jl2 = new JLabel("请输入任意两个正整数:");
jl3 = new JLabel("它们的最大公约数为:");
jl1.setFont(new Font("Dialog",Font.PLAIN,25));
jl2.setFont(new Font("Dialog",Font.PLAIN,18));
jl3.setFont(new Font("Dialog",Font.PLAIN,18));
jt1 = new JTextField(8);
jt2 = new JTextField(8);
jt3 = new JTextField(8);
jt3.setEditable(false);
jt3.setBackground(Color.CYAN);
box = Box.createHorizontalBox();
jbtn1 = new JButton(" 求 解 ",new ImageIcon("1.png"));
box.add(jbtn1);
box.add(Box.createHorizontalStrut(30));
jbtn2 = new JButton(" 清 除 ",new ImageIcon("3.png"));
box.add(jbtn2);
box.add(Box.createHorizontalStrut(30));
jbtn3 = new JButton(" 退 出 ",new ImageIcon("2.png"));
box.add(jbtn3);
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
jp1.setBackground(Color.WHITE);
jp2.setBackground(Color.WHITE);
jp1.add(jl1);
jp2.add(jl2);
jp2.add(jt1);
jp2.add(jt2);
jp2.add(jl3);
jp2.add(jt3);
jp3.add(box);
jframe = new JFrame("最大公约数");
jframe.add(jp1,BorderLayout.NORTH);
jframe.add(jp2,BorderLayout.CENTER);
jframe.add(jp3,BorderLayout.SOUTH);
jframe.setSize(500, 200);
jframe.setLocation(450, 200);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setResizable(false);
jframe.setVisible(true);
/**
* 退出按钮注册事件
*/
jbtn3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO 自动生成的方法存根
System.exit(0);
}
});
/**
* 清除按钮注册事件
*/
jbtn2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
jt1.setText(null);
jt2.setText(null);
jt3.setText(null);
}
});
/**
* 求解按钮注册事件
*/
jbtn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (jt1.getText().length() == 0 || jt2.getText().length() == 0) {
JOptionPane.showMessageDialog(jframe, "任意文本不能为空,请输入任意两个正整数!",
"警告", JOptionPane.WARNING_MESSAGE);
jt1.setText(null);
jt2.setText(null);
jt3.setText(null);
}else{
/*把字符串转换成整型*/
int x = Integer.parseInt(jt1.getText());
int y = Integer.parseInt(jt2.getText());
int n;
if(x>0 && y>0){
for(n=x;n>0;n--){
if(x%n==0 && y%n==0){
/*把整型串转换成字符串*/
jt3.setText(Integer.toString(n));
break;
}
}
}else{
JOptionPane.showMessageDialog(jframe, "输入的两个数必须是正整数,请重新输入!",
"警告", JOptionPane.WARNING_MESSAGE);
}
}
}
});
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
MaximalCommonDivisor mcd = new MaximalCommonDivisor();
mcd.go();
}
}