[Java GUI] 筛选指定区间内满足条件的数字

嵌套布局的一个简单示例

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

class NumberFrame extends JFrame implements ActionListener {

	private static final long serialVersionUID = -8079275721169313862L;

	private JLabel lblInfo = null;
	JTextField txtStart;
	JTextField txtEnd;
	JTextField txtFactor;
	JTextArea txtRes;
	JButton btnCalc;
	JPanel inputPanel;
	JScrollPane resultPane;
	JPanel panel;

	NumberFrame(String title) {
		super(title);
		lblInfo = new JLabel("Number Game", JLabel.CENTER);
		Container cp = getContentPane();
		cp.add(lblInfo, BorderLayout.NORTH);

		txtStart = new JTextField();
		txtEnd = new JTextField();
		txtFactor = new JTextField();

		panel = new JPanel();
		panel.setLayout(new BorderLayout());

		JPanel lblPane = new JPanel();
		lblPane.setLayout(new GridLayout(4, 1));
		lblPane.add(new JLabel("From"));
		lblPane.add(new JLabel("To"));
		lblPane.add(new JLabel("Factor"));
		lblPane.add(new JLabel());

		JPanel txtPane = new JPanel();
		txtPane.setLayout(new GridLayout(4, 1));
		txtPane.add(txtStart);
		txtPane.add(txtEnd);
		txtPane.add(txtFactor);
		btnCalc = new JButton("Compute");
		btnCalc.addActionListener(this);
		txtPane.add(btnCalc);

		// input panel
		inputPanel = new JPanel();
		inputPanel.setLayout(new BorderLayout());
		inputPanel.add(lblPane, BorderLayout.WEST);
		inputPanel.add(txtPane, BorderLayout.CENTER);
		
		panel.add(inputPanel, BorderLayout.WEST);

		// result panel
		txtRes = new JTextArea(150, 10);
		txtRes.setLineWrap(true);
		resultPane = new JScrollPane(txtRes);
		panel.add(resultPane, BorderLayout.CENTER);

		cp.add(panel);

		setSize(400, 150);
		setLocation(300, 200);
		setResizable( false );
		setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == btnCalc) {
			txtRes.setText(null);
			try {
				int m = Integer.parseInt(txtStart.getText().trim());
				int n = Integer.parseInt(txtEnd.getText().trim());
				int factor = Integer.parseInt(txtFactor.getText().trim());

				for (int i = m; i <= n; ++i) {
					if (i % factor == 0)
						txtRes.append(String.valueOf(i) + " ");
				}
			} catch (NumberFormatException e1) {
				e1.printStackTrace();
			}
		}
	}
}

public class EvenNumberDemo {
	public static void main(String[] args) {
		new NumberFrame("Number Game");
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值