我的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);
}
}
答案 0 :(得分:5)
您没有将按钮或JPanel添加到任何内容中,因此没有JFrame会神奇地显示它们。
您应该通过add(...)
方法将JButton添加到JPanel,然后通过add(...)
方法将JPanel添加到JFrame,并在设置之前执行 JFrame可见。
最重要的是,你应该阅读Swing tutorials,因为我从经验中说出你不会在这里猜测这些东西。这一点都很好地解释了。
顺便说一句,避免设置任何组件的大小,而是阅读有关使用布局管理器的教程部分,因为它可以让您大大简化和授权代码。
答案 1 :(得分:3)
您需要使用p.add(calculateButton)
将您的calculateButton添加到JPanel,并使用f.add(p)