【发布时间】:2015-04-24 14:18:17
【问题描述】:
我想在一个 JPanel 中绘制一些不同的 JComponent。我用不同的绘制方法创建了一些 JComponents。然后在 main 中创建对象并将它们放到 JFrame 中。 我的问题是,只有最后一个对象被绘制在窗口中。
如何在窗口中放置不同的 JComponent,而不删除或重新绘制旧的?
(Model2 和 Model1 一样,只是paintComponent 有点不同)
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GuiModel{
public static void main(String[] args){
JFrame frame = new JFrame();
frame.setSize(600, 600);
frame.setLocation(150, 150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.getContentPane().add(new Model1(0,0));
frame.getContentPane().add(new Model2(25,37,true));
}
}
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JComponent;
public class Model1 extends JComponent {
private int xPos, yPos;
Model1 (int x, int y){
this.xPos = x;
this.yPos = y;
}
@Override
protected void paintComponent(Graphics g) {
g.setColor(Color.BLACK);
g.drawOval(xPos, yPos, 5, 5);
}
}
【问题讨论】:
标签: java swing jframe paintcomponent jcomponent