如何为此代码添加一个按钮,以便将播放,高分和退出的文本设置为实际按钮,因此当有人点击它时,它会执行他们希望它执行的操作。
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);
}
}
答案 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
}
}