繁体   English   中英

JFrame没有在正确的尺寸上制作

[英]JFrame not being made at right dimensions

运行此代码时,将生成一个窗口但不是指定的维度。 这有什么问题?

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

public class Windowing {
    void JFrame(){
        JFrame frames = new JFrame("Total recall");
        frames.setSize(1000,8000);
        frames.setVisible(true);
        frames.pack();
        //Buttons push = new Buttons();
        //((Buttons) push).buttons();
        JTextField wager = new JTextField(1);
        wager.setSize(100,200);
        wager.setVisible(true);
        wager.setLocation(100, 200);
        frames.add(wager);
        //frames.add(push);
    }
}

你可以删除对frames.pack()的调用; 它会覆盖先前设置的帧大小。

但是,您真正想要做的是删除frames.setSize(1000,8000)并将frames.pack()向下移动到方法的底部; 这将确保框架足够大,可以显示其内容,但不能太大,无法放在屏幕上。

如果你在向帧添加任何内容之前调用pack (就像你现在正在做的那样),它会使窗口非常小; 它可能出现在屏幕的左上角附近,但除非你知道在哪里看,否则你不会注意到它。

看起来你在这里有很多“机会区”。

  • 首先,您似乎将帧大小设置为1000x8000,因为您没有看到任何更改吗?

  • 其次,你在textField上调用setVisible ,因为你也没有看到。

  • 最后你要设置文本字段的大小(我想因为你看到它占据了整个框架)

这里的问题是你必须在构造结束时调用packsetVisible 此外,您还必须学习如何使用布局管理器和框架。

Swing,非常强大,但在开始时有点难以掌握。

这两个链接将有所帮助:

我已经更改了你的代码,结果如下:

替代文字

这是修改后的源代码。

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

public class Windowing {
    public static void main( String [] args ) {
        Windowing windowing = new Windowing();
        windowing.showFrame();
    }
    void showFrame(){
        JFrame frame = new JFrame("Total recall");
        JButton push = new JButton("Push");
        JTextField wager = new JTextField(15);

        // Panels do have "FlowLayout"
        JPanel panel = new JPanel();
        panel.add(wager);
        panel.add(push);

        frame.add( panel );
        frame.pack();
        frame.setVisible(true);

    }
}

尝试使用setPreferredSize(Dimension)代替。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM