将按钮添加到java游戏中

时间:2015-05-11 20:47:22

标签: java swing

如何为此代码添加一个按钮,以便将播放,高分和退出的文本设置为实际按钮,因此当有人点击它时,它会执行他们希望它执行的操作。

import java.awt.*;
import javax.swing.*;

class MainPanel extends JPanel {

    public void paintComponent(Graphics g)
    {

        //EkansBackground
        g.setColor(Color.BLACK);
        g.fillRect(50, 50, 600, 400);

        //EkansLogo
        g.setColor(Color.WHITE);
        int fontSize = 50;
        Font f = new Font("Marker felt", Font.BOLD, fontSize);
        g.setFont(f);
        g.drawString("---] EKANS [---", 180, 200);

        //Play button
        g.setColor(Color.GREEN);
        int fontSize1 = 40;
        Font f1 = new Font("comic sans ms", Font.ITALIC, fontSize1);
        g.setFont(f1);
        g.drawString("> PLAY <", 270, 280);

        //Play button
        g.setColor(Color.RED);
        g.drawString("> EXIT <", 270, 380);

        //High Score button
        g.setColor(Color.BLUE);
        g.drawString("> High Scores <", 215, 330);


    }
}

3 个答案:

答案 0 :(得分:0)

在你的类构造函数中放置:

JButton playButton = new JButton("Play");
add(playButton);

如果你想要,你可以把它放在哪里,但它通常在类构造函数中。

我建议您了解swing components

答案 1 :(得分:0)

如果您希望游戏不使用AWT或Swing组件,则可以创建自己的Button - 类。 如果你这样做,你就不会在后台渲染其他东西时遇到任何问题,使用主动渲染,你可以完全定义按钮的动作。

但是,如前所述,您可以使用AWT的Button或Swing&#39; JButton。 如果您这样做,只需将它们添加到JPanel即可。 但请确保你真的画了它们(如果我没记错,那就是方法paintComponents(Graphics))。

您还应该在super.paintComponent(); - 方法的开头致电paintComponent

答案 2 :(得分:0)

您可以使用Swing包中的JButton类。

JButton play = new JButton("> PLAY < ");
JButton exit = new JButton("> EXIT <");
JButton highscore = new JButton("> High Scores <");
this.add(play);
this.add(exit);
this.add(highscore);

如果没有任何版面管理器,按钮将根据FlowLayout放置,即彼此相邻。

您也可以使用一些JLabel作为Button,如果您有背景图像,它可以更灵活地使用。使用一些MouseListener和Image作为背景,您可以构建一些很棒的Button。

JLabel playLabel = new JLabel(new ImageIcon("./play.png"));

playLabel.addMouseListener(new MouseAdapter(){
      public void mouseClicked(MouseEvent evt) {
           playLabel.setIcon(new ImageIcon("./play_clicked.png");
           //Some action
      }
}