GridLayout 例

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class GridLayoutDemo extends JPanel implements ActionListener{
    Panel1 p1;
    Panel2 p2;
    GridLayoutDemo(){
        p1 = new Panel1();
        p2 = new Panel2();
        p2.button.addActionListener(this);
        setLayout(new GridLayout(3,1));
        add(new JLabel("计算从起始到终止是因子倍数的数",JLabel.CENTER));
        add(p1);
        add(p2);
    }
    public static void main(String[] args) {
        JFrame jf = new JFrame("GridLayoutDemo");
        
        jf.setSize(600,600);
        jf.setMinimumSize(new Dimension(100,100));
        jf.setMaximumSize(new Dimension(400,400));
        jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
        
        jf.add(new GridLayoutDemo());
        //jf.pack();
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);

    }

    @Override
    public void actionPerformed(ActionEvent e) {
        int from = Integer.parseInt(p1.text1.getText());
        int to = Integer.parseInt(p1.text2.getText());
        int n = Integer.parseInt(p1.text3.getText());
        for(int i=from;i<=to;i++) {
            if (i%n==0) p2.text.append(i+" ");
        }
        
    }

}
class Panel1 extends JPanel {
    JTextField text1,text2,text3;
    Panel1(){
        setLayout(new GridLayout(1,6));
        text1 = new JTextField(3);
        text2 = new JTextField(3);
        text3 = new JTextField(3);
        add(new JLabel("起始",JLabel.RIGHT));
        add(text1);
        add(new JLabel("终止",JLabel.RIGHT));
        add(text2);
        add(new JLabel("因子",JLabel.RIGHT));
        add(text3);
    }
}
class Panel2 extends JPanel {
    JTextArea text;
    JButton button;
    Panel2() {
        setLayout(new BorderLayout());
        text = new JTextArea(3,2);
        text.setLineWrap(true);
        button = new JButton("开始计算");
        JScrollPane js = new JScrollPane(text);
        add(js,BorderLayout.CENTER);
        //add(new JLabel());
        add(button,BorderLayout.SOUTH);
    }
    
}
原文地址:https://www.cnblogs.com/qqjue/p/2618564.html