jpanel的setSize()无法正常工作

时间:2013-06-01 15:04:04

标签: swing user-interface jframe jpanel awt

我正在尝试设置JPanel的宽度和高度。但它无法正常工作。 这是代码。

import java.awt.*;

import javax.swing.*;

public class FirstGuiApp extends JFrame {

    public static void main(String[] args) {
        JFrame frm = new JFrame("first gui app");
        JPanel txtPanel = new JPanel();
        txtPanel.setBackground(Color.cyan);
        txtPanel.setSize(200,50);// **not working**

        frm.getContentPane().add(BorderLayout.NORTH,txtPanel);
        frm.setVisible(true);
        frm.setSize(450, 350);
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frm.setLocationRelativeTo(null);
    }
}

无法理解错误..

1 个答案:

答案 0 :(得分:0)

尝试使用frm.getContentPane().add(txtPanel)frm.getContentPane().add(BorderLayout.CENTER,txtPanel);

组件根据其首选尺寸和容器尺寸的限制进行布局。 NORTH和SOUTH组件可以水平拉伸; EAST和WEST组件可以垂直拉伸; CENTER组件可以水平和垂直拉伸,以填充剩余的空间。

因此,如果不给出约束,则必须将组件添加到Center,这是默认值。因此,我们无法增加位置。