Java에서 작은 게임을위한 menue를 작성하려고합니다. Window 클래스 (JFrame 확장)를 사용하고 다른 화면 (Menue, Game, GameOver 등)에 JPanel을 넣는 것이 좋습니다. JFrame에 직접 버튼과 물건을 넣으면 shwown correct,하지만 JPanel을 JFrame에 넣으려고하면 작동하지 않습니다. 여기에 코드입니다 :jframe에서 jpanel을 표시하는 방법
public class Window extends JFrame{
private final int WIDTH = 800;
private final int HEIGTH = 600;
private final int QUADRAT = 50;
JButton startButton;
JButton exitButton;
JButton anleitungButton;
JLabel gameTitle;
public Window() {
super("Study Run");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(null);
setSize(WIDTH, HEIGTH);
setResizable(false);
getContentPane().add(new MenuePanel());
setVisible(true);
setLocationRelativeTo(null);
}
그리고 이것은 내 패널입니다 :
public class MenuePanel extends JPanel{
JButton startButton;
JButton exitButton;
JButton anleitungButton;
JLabel gameTitle;
public MenuePanel() {
super();
setBackground(Color.CYAN);
gameTitle = new JLabel("StudyRun", SwingConstants.CENTER);
gameTitle.setBounds(200, 25, 400, 75);
gameTitle.setFont(new Font("Arial", Font.ITALIC, 36));
add(gameTitle);
startButton = new JButton("start");
startButton.setBounds(325, 125, 150, 50);
add(startButton);
anleitungButton = new JButton("anleitung");
anleitungButton.setBounds(325, 200, 150, 50);
add(anleitungButton);
exitButton = new JButton("exit");
exitButton.setBounds(325, 450, 150, 50);
add(exitButton);
CloseListener closeListener = new CloseListener();
StartListener startListener = new StartListener();
AnleitungListener anleitungListener = new AnleitungListener();
startButton.addActionListener(startListener);
anleitungButton.addActionListener(anleitungListener);
exitButton.addActionListener(closeListener);
}
나는 내가 볼 프레임을 설정하기 전에 패널을 추가 할 필요가 있다고했다 온라인으로 볼 수있는 유일한 도움이됩니다. 그것은 작동하지 않았다. pack() 또는 revalidate()를 코드의 아무 곳에 나 놓아도 작동하지 않았습니다. 또한 패널을 불투명하거나 눈에 보이게 설정하는 것은 아무 것도하지 않았습니다. 다른 무엇을 시도 해야할지 모르겠다.
가 대단히 감사합니다
} .. JFrame의 추가 할 수 있습니다. BorderLayout이 가장 좋은 화면 유형이 여러 개 있기 때문에? 내 menue는 중간에 3 개의 수직 정렬 버튼이 있습니다. 게임은 게임 패널이고 gameoverscreen은 하단에 버튼이 있고 중간에 텍스트가 있습니다. – N00bine
@ N00bine : 모든 크기에 맞는 레이아웃이 없습니다. 보통 복잡한 레이아웃을 간단하게 구현하기 위해 자체 레이아웃 관리자를 사용하는 JPanels를 중첩합니다. 튜토리얼을 공부하십시오. –
@ N00bine : 또한 시간의 90 %, 내 * 주 * JPanel은 BorderLayout을 사용합니다. –