gpt4 book ai didi

java - 我如何在java中使用setPreferredSize?

转载 作者:行者123 更新时间:2023-12-02 13:39:47 25 4
gpt4 key购买 nike

我有一个问题:我想创建一个小游戏,我必须制作一个如下所示的窗口:

enter image description here

当我尝试更改“Fun With Words”的字体大小时,它没有改变......

我应该做什么?

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



public class GameWords extends JFrame

{
private static int W = 800 ;
private static int H = 600 ;



public GameWords ()
{
setTitle ( " Word Order Game " ) ;
setSize ( H , W ) ;
setLayout ( new FlowLayout() ) ;
setDefaultCloseOperation ( EXIT_ON_CLOSE ) ;
createContent () ;
setVisible ( true ) ;
}

public void createContent ()
{
JLabel heading = new JLabel (" Fun With Words ") ;
heading.setFont ( heading.getFont().deriveFont ( 26f ) );
heading.setPreferredSize ( new Dimension ( H , 4 * W ) ) ;
JLabel h1 = new JLabel ( " Hey Kids! Want to prictice your typing and word-ordering Skills ? \n" ) ;
add ( heading ) ;
add ( h1 ) ;


}


public static void main(String[] args)

{
new GameWords () ;

}

}

最佳答案

简短的回答是不需要,API 完全能够自行计算所需的大小。

较长的答案是,不要使用setSize,而是使用pack,它使用容器的首选大小来计算窗口的大小

public GameWords ()
{
setTitle ( " Word Order Game " ) ;
setLayout ( new FlowLayout() ) ;
setDefaultCloseOperation ( EXIT_ON_CLOSE ) ;
createContent () ;
pack();
setVisible ( true ) ;
}

public void createContent ()
{
JLabel heading = new JLabel (" Fun With Words ") ;
heading.setFont ( heading.getFont().deriveFont ( 26f ) );
JLabel h1 = new JLabel ( " Hey Kids! Want to prictice your typing and word-ordering Skills ? \n" ) ;
add ( heading ) ;
add ( h1 ) ;


}

作为一般建议,您不应直接从 JFrame 进行扩展,您不会向类添加任何新功能,并且会将自己锁定在单个用例中。作为一般建议,您应该首先从 JPanel 扩展,然后将其添加到您想要使用的任何容器

关于java - 我如何在java中使用setPreferredSize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42795492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com