Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单布局-java swing_Java_Swing_Layout - Fatal编程技术网

简单布局-java swing

简单布局-java swing,java,swing,layout,Java,Swing,Layout,我想做一个简单的布局,像这样: 我可以在没有布局管理器的情况下完成这项工作,但我需要使用它。我试着自己做,但失败了。您在图中提到的网格或表格的布局 因此,您可以使用GridLayout 或表格布局 我希望这能有所帮助 读一下 请尝试下一步: import java.awt.Color; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import ja

我想做一个简单的布局,像这样:


我可以在没有布局管理器的情况下完成这项工作,但我需要使用它。我试着自己做,但失败了。

您在图中提到的网格或表格的布局 因此,您可以使用GridLayout

或表格布局

我希望这能有所帮助

读一下

请尝试下一步:

import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class TestFrame extends JFrame {

    public TestFrame() {
        init();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }

    private void init() {
        setLayout(new GridBagLayout());

        GridBagConstraints c = new GridBagConstraints();
        c.insets = new Insets(5, 5, 5, 5);
        c.gridx=0;
        c.gridy=0;

        c.gridwidth = 2;
        c.fill = GridBagConstraints.HORIZONTAL;
        c.weightx = 1;
        add(getLbl(),c);


        JPanel left = new JPanel(new GridLayout(3,3,5,5));
        for(int i =0;i<9;i++){
            left.add(getLbl());
        }

        JPanel right = new JPanel(new GridLayout(3,2,5,5));
        for(int i =0;i<6;i++){
            right.add(getLbl());
        }

        c.weightx = 0;
        c.gridwidth = 1;
        c.gridy++;
        c.fill = GridBagConstraints.NONE;
        c.anchor = GridBagConstraints.WEST;
        add(left,c);

        c.anchor = GridBagConstraints.EAST;
        c.gridx++;
        add(right,c);
    }


    private JLabel getLbl() {
        JLabel l = new JLabel("   ");
        l.setBorder(BorderFactory.createLineBorder(Color.BLACK));
        return l;
    }

    public static void main(String args[]) {
        new TestFrame();
    }

}

你需要知道的是:我自己尝试过,但是失败了——好吧,我忘了在JTextField顶部,JButton下面写一个简单的计算器GUI。实际上,我正在尝试学习和测试网格和流布局。现在你们知道如何布局组件了,把标签改成文本字段/按钮