我的程序在屏幕上绘制了50个矩形条。我使用另一个类Bar
初始化条形对象。一切都运行良好,但我需要一种方法来声明和初始化main方法中的bar对象。我试图在main方法中声明和初始化,但我无法将参数传递给paint(Graphics g)方法。我怎么能这样做,所以我的paint()函数没有做所有的工作?
我目前的代码:
import java.util.*;import java.awt.*;import javax.swing.*;import java.awt.event.*;
public class test extends JFrame{
public test(){
setSize(1000,700);
setVisible(true);
}
public void main(String args[]){
repaint();
}
public void paint(Graphics g){
Bar bar[] = new Bar[50]; //declare object array
int y = 0;
for(int x = 0; x < 50; x++){ //initialize 50 bar objects
bar[x] = new Bar(5,y,15,5);
y += 6;
}
for(int x = 0; x < 50; x++){ //draw each bar object
int height = bar[x].getHeight();
int width = bar[x].getWidth();
int locx = bar[x].getLocx();
int locy = bar[x].getLocy();
g.fillRect(locx,locy,width,height);
}
}
}
答案 0 :(得分:2)
将其存储为类成员
public class test extends JFrame{
Bar bar[] = new Bar[50];
在主
中设置public void main(String args[]){
bar[1] = new Bar();
}
然后在paint()
public void paint(Graphics g){
bar[1].doSomething()
但是你应该在EDT上运行GUI调用,以避免同步问题。即两个单独的东西不要重新粉刷。