Java 尝试创建带有按钮的菜单屏幕

Java 尝试创建带有按钮的菜单屏幕,java,Java,我正在尝试创建一个菜单屏幕,其中包含“播放”、“高分”、“说明”和“关闭应用程序”等按钮。到目前为止,我有一个菜单将打开,当按下enter键时,它将播放应用程序。我只是想知道如何创建菜单,同时仍然保留我的文字代码 import java.awt.Canvas; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.event.KeyEvent; import java.aw

我正在尝试创建一个菜单屏幕,其中包含“播放”、“高分”、“说明”和“关闭应用程序”等按钮。到目前为止,我有一个菜单将打开,当按下enter键时,它将播放应用程序。我只是想知道如何创建菜单,同时仍然保留我的文字代码

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import displaypackagev1.Sea_InvadersDisplay;
import statepackagev1.Sea_InvadersStateMachine;
import statepackagev1.StateMachineInterface;

public class MenuScreen extends StateMachineInterface implements KeyListener {

    private Font titleFont = new Font("Comic Sans MS", Font.PLAIN, 64);
    private Font startFont = new Font("Comic Sans MS", Font.PLAIN, 32);
    private String title = "Space Invaders";
    private String start = "Press Enter";

    public MenuScreen(Sea_InvadersStateMachine stateMachine) {
        super(stateMachine);
    } 

    @Override
    public void update(double delta) {

    }

    @Override
    public void draw(Graphics2D g) {
        g.setFont(titleFont);
        int titleWidth = g.getFontMetrics().stringWidth(title);
        g.setColor(Color.yellow);
        g.drawString(title, ((Sea_InvadersDisplay.WIDTH/2)-(titleWidth/2))-2, (Sea_InvadersDisplay.HEIGHT/2)-123);
        g.setColor(Color.green);
        g.drawString(title, (Sea_InvadersDisplay.WIDTH/2)-(titleWidth/2), (Sea_InvadersDisplay.HEIGHT/2)-125);

        g.setFont(startFont);
        g.setColor(Color.white);
        int startWidth = g.getFontMetrics().stringWidth(start);
        g.drawString(start, (Sea_InvadersDisplay.WIDTH/2)-(startWidth/2), (Sea_InvadersDisplay.HEIGHT/2)+75);
    }

    @Override
    public void init(Canvas canvas) {
        canvas.addKeyListener(this);
    }

    @Override
    public void keyPressed(KeyEvent e) {
    }

    @Override
    public void keyReleased(KeyEvent e) {
        if (e.getKeyCode() == KeyEvent.VK_ENTER) {
            getStateMachine().setState((byte) 1);
        }
    }

    @Override
    public void keyTyped(KeyEvent e) {

    }

}
不错。希望能帮助你。:)很好。希望并帮助您。:)