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 に答える