gpt4 book ai didi

java - 如何使按钮在我的 java 小程序中显示和工作

转载 作者:行者123 更新时间:2023-12-02 05:50:57 24 4
gpt4 key购买 nike

我有一个带有 java 杯子图像的小程序,可以通过单击 5 个按钮将其移动到小程序窗口的主区域中来重新定位。我遇到的问题是按钮没有显示在我的小程序中,唯一显示的是蓝色背景上的 cup.gif,任何人都可以看到代码的问题,我希望按钮显示并工作是的,我知道 AWT 很旧,但我必须为我的类(class)学习它......任何帮助都会非常感谢你们!

 import java.awt.*;
import java.awt.event.*;
import java.applet.*;


public class moveIt extends Applet implements ActionListener

{

private Image cup;
private Panel Keypad = new Panel();
public int top = 15;
public int left = 15;
private Button Keyarray[] = new Button[5];
public void init ()
{
cup=getImage(getDocumentBase(), "cup.gif");
Canvas myCanvas= new Canvas();


Keyarray[0] = new Button ("Up");
Keyarray[1] = new Button ("Left");
Keyarray[2] = new Button ("Down");
Keyarray[3] = new Button ("Right");
Keyarray[4] = new Button ("Center");
setBackground(Color.BLUE);

Panel frame = new Panel();
frame.setLayout(new BorderLayout());
frame.add(myCanvas, BorderLayout.NORTH);
frame.add(Keypad, BorderLayout.SOUTH);
Keypad.setLayout(new BorderLayout());


Keypad.add(Keyarray[0], BorderLayout.NORTH);
Keypad.add(Keyarray[1], BorderLayout.WEST);
Keypad.add(Keyarray[2], BorderLayout.SOUTH);
Keypad.add(Keyarray[3], BorderLayout.EAST);
Keypad.add(Keyarray[4], BorderLayout.CENTER);

Keyarray[0].addActionListener(this);
Keyarray[1].addActionListener(this);
Keyarray[2].addActionListener(this);
Keyarray[3].addActionListener(this);
Keyarray[4].addActionListener(this);


}//end of method init


public void paint(Graphics g)


{

g.drawImage(cup, left, top, this);

}

public void actionPerformed(ActionEvent e)
{
String arg= e.getActionCommand();

if (arg.equals("Up"))
top -= 15;
if (arg.equals("down"))
top += 15;
if (arg.equals("Left"))
left -= 15;
if (arg.equals("Right"))
left += 15;
if (arg.equals("Center"))
{
top=60;
} left=125;

repaint();



}//end paint method

}//end of class

最佳答案

  1. 您永远不会将 frame 添加到小程序 this.add(frame)
  2. 完成后,您必须为框架setOpaque(false),以便可以看到背景

重要附注:

  • 您应该在 JPanel 上绘画并重写它的 paintComponent 方法,而不是直接在 Applet 上绘画。

  • 您需要在paint方法中调用super.paint(g)super.paintComponent(g)(对于JPanel),以免中断油漆链,看到各种奇怪的油漆制品

  • 我刚刚注意到 AWT 组件。 AWT 已经过时了。您应该将其升级为使用 Swing。请参阅Swing Tutorials

  • 使用 Java 命名约定。变量以小写字母开头,使用驼峰命名法,例如KeyarraykeyArray。类名使用 CamelCasing 以大写字母开头,例如moveItMoveIt

关于java - 如何使按钮在我的 java 小程序中显示和工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23544033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com