我的JFrame中没有任何内容出现

我正在练习使用GUI。 我一直在遵循一组指令,但是当我尝试运行程序时,只显示一个空框架。 框架内部无法看到任何信息。

这是我的代码:

package practice528; import java.util.Scanner; import java.io.*; import javax.swing.*; import java.awt.*; public class Practice528 { public static void main(String[] args) { JFrame frame = new JFrame("Rectangle Calculator"); frame.setVisible(true); frame.setSize(400,300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel lengthL, widthL, areaL, perimeterL; lengthL = new JLabel("Enter the length: ", SwingConstants.RIGHT); widthL = new JLabel("Enter the width: ", SwingConstants.RIGHT); areaL = new JLabel("The area is ", SwingConstants.RIGHT); perimeterL = new JLabel("The perimeter is ", SwingConstants.RIGHT); frame.setLayout(new GridLayout(5,2)); System.out.println(); } //end main } //end class 

将组件添加到内容窗格:)

以下是使用多functionMigLayout的建议:

 JPane panel = (JPanel) frame.getContentPane(); panel.setLayout(new MigLayout("fill, wrap 2", "[right][fill]")); panel.add(lengthL); panel.add(new JTextField()); panel.add(widthL); panel.add(new JTextField()); panel.add(areaL); panel.add(new JTextField()); panel.add(perimeterL); panel.add(new JTextField()); 

简单: 向组件添加组件之前,不要在JFrame上调用setVisible(true) 。 只有完成整个事情之后才能调用它,至少在最初阶段。

您应该使用以下代码添加组件tpo JFrame:

 frame.getContentPane().add(lengthL); frame.getContentPane().add(widthL); frame.getContentPane().add(areaL); frame.getContentPane().add(perimeterL); 

你需要在给定的框架中添加Jlabels。

 frame.add(lengthL); frame.add(widthL); frame.add(areaL); frame.add(perimeterL); 

这只是添加你创建的标签,如果你想要另一个组件,然后创建并添加到frame.ex文本字段。