-5

なぜ0を返すのですか?私は何が間違っているのですか?

public MainFrame() {
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        setVisible(true);
        System.out.println(getWidth() + " " + getHeight());
}
4

2 に答える 2

2

0を取得した理由は、pack()、setSize(int、int)、またはsetSize(Dimension)のいずれも呼び出さなかったためです。これは、これらのメソッドの1つを呼び出す場合にのみ、フレームのレイアウトが計算されます。

于 2013-02-06T23:04:22.640 に答える
1

この次のコード スニペットが役に立ちます。あなたが何をしているのかさえわかりません。

import javax.swing.*;
import java.awt.*;

public class TestFrameSize {

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//        frame.setSize(new Dimension(450, 400));
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
//        frame.setLayout(new BorderLayout());

        JLabel question = new JLabel("But that's whole code... Those 3 lines are whole code ");
        question.setHorizontalAlignment(JLabel.CENTER);
        frame.add(question);
        frame.setVisible(true);

        System.out.println(frame.getWidth() + " : " + frame.getHeight());
    }
}
于 2013-02-06T23:19:00.460 に答える