我是java的新手,我想制作一个矩形,它使用用户输入和扫描仪来获取矩形的大小。问题是它接受用户输入但不显示矩形。我相信这是因为我的 y 整数在静态函数中,但我不确定如何解决这个问题。我在谷歌上搜索了很长时间,但找不到答案。谁能帮我?谢谢。:)
import java.util.Scanner;
import java.awt.*;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Shape extends JPanel implements ActionListener{
Timer tm = new Timer(5, this);
public static void main(String[] args){
System.out.println("Place in the width of your vaccum cleaner here:");
Scanner myY = new Scanner(System.in);
int y = myY.nextInt();
JFrame jf = new JFrame("Title");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Shape s = new Shape();
jf.add(s);
jf.setSize(600, 400);
jf.setVisible(true);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
this.setBackground(Color.PINK);
g.setColor(Color.BLACK);
g.fillRect(0, 0, 40, y);
tm.start();
}
}
您发布的代码无法编译,因此现在可以显示矩形。
int y
在main
中定义,在paintComponent
中不被识别。
使其成为类变量:static int y;
并通过以下方式main
初始化它: y = myY.nextInt();