1
我有一個類,通過定時器重畫它來創建動畫對象(蠕蟲狀動畫)。 另一類有我的框架和麪板。 當我創建此對象的2(mov和mov2)實例並將其添加到面板時,它們將顯示在分離面板中(或者看起來像)。繼承人的代碼。Java:在同一個JPanel上添加2個動畫對象(paintComponent)
public class Movimento extends JComponent{
int t;
int a;
int[][] matriz;
public Movimento(int tamanho, int area){
t = tamanho;
a = area;
gerarMatriz();
gerarPanel();
ActionListener counter = new ActionListener() {
public void actionPerformed(ActionEvent ev){
movimentarMatriz();
repaint();
}
};
new Timer(1, counter).start();
}
public void gerarPanel(){
this.setPreferredSize(new Dimension(a, a));
}
public void gerarMatriz(){
/*
*Generates an array[][] with initial coordinates
*/
}
public void movimentarMatriz(){
/*
* add a new coordinate to the last space of the array
*/
}
public void paintComponent(Graphics g){
super.paintComponent(g);
for(int i = 0; i < matriz.length; i++){
g.drawRect(matriz[i][0],matriz[i][1],1,1);
}
}
然後我在這裏創建新對象MOVIMENTO
public class GeraImg{
JFrame frame = new JFrame("Gera Imagem");
JPanel panel = new JPanel();
Movimento mov = new Movimento(1000,400);
Movimento mov2 = new Movimento(100,400);
public GeraImg(){
fazerFrame();
}
public void fazerFrame(){
panel.setOpaque(true);
panel.setBackground(new Color(150,200,20,255));
panel.add(mov2);
panel.add(mov);
frame.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args){
new GeraImg();
}
}
然後我並排得到2 separeted動畫面板側,同樣的面板內沒有2蠕蟲。
這個概念是完全錯誤的嗎? 感謝
它像一個魅力工作。我將佈局設置爲空,並設置每個組件的位置和大小,它們在相同的空間中進行動畫處理。 我將研究創建一個分離類來動畫這些組件。謝謝!! – MVAmorim 2015-04-01 16:33:35