簡體   English   中英

如何在Java中制作菜單按鈕?

[英]How to make menu buttons in Java?

我已經使文本顯示在使用Rectangle類制作的此菜單中。 我想知道是否可以這樣做,以便能夠選擇文本,您可以使用鍵盤箭頭選擇您的選擇,然后按Enter,然后它將執行下一個操作。 這是我到目前為止的內容:

public Rectangle menuBorder;
    public Rectangle menu;
    BufferedImage character;
    private java.awt.Point characterLocation;
    private java.awt.Point borderLocation;
    private java.awt.Point menuLocation;
    public int charW = 24;
    public int charH = 36;
    public int borderW = 210;
    public int borderH = 80;
    public int menuW = 190;
    public int menuH = 60;


    public boolean right = false;
    public boolean left = false;
    public boolean up = false;
    public boolean down = false;

    public Keying(Display f, Images i) throws IOException
    {
        character = ImageIO.read(getClass().getResource("starting mon.png"));
        menuBorder = new Rectangle(10, 10, borderW, borderH);
        menu = new Rectangle(10, 10, menuW, menuH);
        characterLocation = new Point(175, 100);
        borderLocation = new Point(175, 270);
        menuLocation = new Point(185, 280);

//...


    @Override
    protected void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        this.setBackground(Color.white);
        g.drawImage(character, characterLocation.x, characterLocation.y, this);
        g.setColor(Color.black);
        g.fillRect(borderLocation.x, borderLocation.y, borderW, borderH);
        g.setColor(Color.white);
        g.fillRect(menuLocation.x, menuLocation.y, menuW, menuH);
        g.setColor(Color.black);
        g.setFont(new Font("Arial", Font.BOLD, 20));
        g.drawString("Battle", 190, 305);
        g.drawString("Feed", 320, 305);
        g.drawString("Pet", 200, 335);
        g.drawString("Age", 325, 335);
    }
//...

首先,請參閱我對繪畫的第一條評論...

您將需要某種“狀態”變量,以便可以確定應該繪制哪種狀態,這可以通過使用某種ListSelectionModel

您可能需要一個MouseListener和一個MouseMotionListener來監視鼠標的狀態,有關更多詳細信息,請參見如何編寫鼠標偵聽器

您可能還想看一下如何使用鍵綁定

當然,您可以只使用JList並省去麻煩……請參閱如何使用列表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM