如何制作一些特定的宽度和高度以及一些带有jframes的自动 - Java

时间:2014-11-02 16:41:23

标签: java swing gridbaglayout border-layout

我想制作一个看起来像这样的jframe

enter image description here

如图所示,我想让右侧面板宽度为200px,底部面板高度为80px,然后其他所有内容都是自动的,因为我希望窗口可以调整大小。

有人可以帮助我实现这个目标吗?我一直在尝试使用gridLayoutBorderLayout和其他人。我看过一些有插图的东西,但无法弄明白。

1 个答案:

答案 0 :(得分:1)

我相信这应该可以解决问题。

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MainFrame extends JFrame {
    public static void main(String[] args) {
        MainFrame frame = new MainFrame();
        JPanel centerWrapper = new JPanel();        

        JPanel center = new JPanel();
        center.setBackground(Color.BLUE);

        JPanel right = new JPanel();
        right.setBackground(Color.CYAN);
        right.setPreferredSize(new Dimension(200, 10));

        centerWrapper.setLayout(new BorderLayout());
        centerWrapper.add(center, BorderLayout.CENTER);
        centerWrapper.add(right, BorderLayout.EAST);

        JPanel bottom = new JPanel();        
        bottom.setPreferredSize(new Dimension(640, 200));
        bottom.setBackground(Color.GREEN);

        frame.setLayout(new BorderLayout());
        frame.add(centerWrapper, BorderLayout.CENTER);
        frame.add(bottom, BorderLayout.SOUTH);

        // you can now use center, right and bottom

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(640, 480);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}