所以我想要实现的是创建一个简单的程序,让用户在屏幕上创建矩形然后移动它们。
我知道我可以在代码中声明一个新对象(即矩形 i = new rectangle(x,y,sizex,sizey))但是这只会创建一个,而且它迫使我在代码中声明它:block1 = new块块2 =新块等
问题是:如何让用户使用让我们说一个按钮(不一定是按钮,它可以是任何东西)来创建无限矩形,然后让用户能够修改它们(位置/大小等)。
例子会很好。我只是觉得有比在代码中声明大量对象然后一个一个显示它们更好的方法。在 C++ 中,我可以声明一个 malloc 可扩展容器,它只保存值,然后只使用这些值显示东西,对于 java 不确定。
简单代码供参考:
public static void main(String[] args){
JFrame frame = new JFrame("A.L.T.E.S");
//Container container = frame.getContentPane();
frame.setSize(1024, 768);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Block object = new Block(10,10,20,20);
frame.add(object);
object.reDraw();
}
public class Block extends JPanel{
int yPos;
int xPos;
int xSize;
int ySize;
public Block(int xPos, int yPos, int xSize, int ySize){
this.xPos = xPos;
this.yPos = yPos;
this.xSize = xSize;
this.ySize = ySize;
}
public void setYPos(int yPos){
this.yPos = yPos;
}
public void setXPos(int xPos){
this.xPos = xPos;
}
public void setXSize(int xSize){
this.xSize = xSize;
}
public void setYSize(int ySize){
this.ySize = ySize;
}
public int getYPos(){
return yPos;
}
public int getXPos(){
return xPos;
}
public int getYSize(){
return ySize;
}
public int getXSize(){
return xSize;
}
public void reDraw(){
repaint();
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.BLUE);
g.fillRect(xPos, yPos, xSize, ySize);
}
}