JFrame不显示按钮或背景颜色

时间:2014-05-15 20:22:40

标签: java swing jframe jpanel

我的JFrame未显示构造函数中设置的按钮或背景颜色。我启动程序时只得到一个空白框。不确定代码有什么问题。

//imports
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;;

public class StartingTheCode{

    JButton CalculateButton;
    JTextField Ans;
    JPanel p;
    JFrame f;

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

    //constructor
    StartingTheCode(){
        f = new JFrame("test");
        f.setVisible(true);
        f.setSize(600,600);
        f.setLocationRelativeTo(null);
        f.setResizable(false);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        p = new JPanel();
        p.setBackground(Color.BLUE); // not displaying blue background

        CalculateButton = new JButton("+"); // should display button
        CalculateButton.setSize(30,30);
        CalculateButton.setLocation(5,5);
    }
}

2 个答案:

答案 0 :(得分:5)

您没有将按钮或JPanel添加到任何内容中,因此没有JFrame会神奇地显示它们。

您应该通过add(...)方法将JButton添加到JPanel,然后通过add(...)方法将JPanel添加到JFrame,并在设置之前执行 JFrame可见。

最重要的是,你应该阅读Swing tutorials,因为我从经验中说出你不会在这里猜测这些东西。这一点都很好地解释了。

顺便说一句,避免设置任何组件的大小,而是阅读有关使用布局管理器的教程部分,因为它可以让您大大简化和授权代码。

答案 1 :(得分:3)

您需要使用p.add(calculateButton)将您的calculateButton添加到JPanel,并使用f.add(p)

将面板添加到框架