0
我有一個問題:我想創建一個小遊戲,我必須作出如下所示的窗口:我該如何在java中使用setPreferredSize?
當我試圖改變「玩轉文字」的字體大小,它沒有改變...
我該怎麼辦?
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() ;
}
}
好,現在正在工作..但是您能否告訴我爲什麼當我們使用包裝時,它工作正常?因爲我的醫生很好的問我,謝謝你的幫助^ _^ –
當你在JFrame上調用pack()時,JFrame會遞歸地詢問子對象的大小,並且由於你指定了一個FlowLayout,所以JFrame設置以自己喜歡的尺寸從小到大排列其子女。但是你應該聽從@MadProgrammer的建議,並且不要從JFrame獲得子類,除非你重寫了它的一個方法。在你的情況下,你甚至不需要繼承JPanel,因爲你並沒有增加任何功能。只需創建一個包含JLabel的JPanel,然後創建一個JFrame並將面板添加到它。 – FredK
@Mj ___ 3正如fred所說,'pack'會根據內容大小的大小將內容框架「打包」。這些信息是由各種佈局管理人員使用的 – MadProgrammer