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의 메소드 중 하나를 재정의하지 않는 한 JFrame에서 서브 클래스하지 않아야합니다. 귀하의 경우 JPanel을 하위 클래스화할 필요가 없습니다. JPanel에 기능을 추가하지 않기 때문입니다. JLabel이 포함 된 JPanel을 만든 다음 JFrame을 만들어 패널을 추가합니다. – FredK
@Mj ___ 3 fred가 말했듯이, 'pack'은 내용의 기본 크기에 따라 내용을 프레임에 "포장"합니다. 이 정보는 사용 된 다양한 레이아웃 관리자에 의해 계산됩니다. – MadProgrammer