0

我正在练习使用 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
4

4 回答 4

3

setVisible(true)简单:在向 JFrame添加组件之前不要调用它。只有在整个事情都设置好之后才调用它,至少在最初是这样。

于 2012-05-28T20:52:17.970 回答
3

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

这是使用多功能MigLayout的建议:

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());
于 2012-05-28T20:52:49.873 回答
3

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

frame.getContentPane().add(lengthL);
frame.getContentPane().add(widthL);
frame.getContentPane().add(areaL);
frame.getContentPane().add(perimeterL);
于 2012-05-28T20:54:35.343 回答
0

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

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

如果您想要另一个组件,则仅添加您创建的标签,然后创建并将其添加到 frame.ex 文本字段。

于 2012-05-29T12:33:50.227 回答