【训练1】绘制空心和实心的椭圆
在窗体上绘制空心和实心的椭圆。
- 方法一:使用Graphics2D类建立Shape类的实现类数组。
/*【训练1】绘制空心和实心的椭圆
* 在窗体上绘制空心和实心的椭圆。
* */
package draw;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import java.awt.Shape;
public class Xl1 extends JFrame{
class DrawPanel extends JPanel{
@Override
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
Shape[] s = new Shape[4];
s[0] = new Ellipse2D.Double(15, 15, 80, 40);
s[1] = new Ellipse2D.Double(130, 5, 40, 80);
s[2] = new Ellipse2D.Double(30, 80, 40, 80);
s[3] = new Ellipse2D.Double(110, 100, 80, 40);
g2.draw(s[0]);
g2.draw(s[1]);
g2.fill(s[2]);
g2.fill(s[3]);
}
}
public void initialize() {
setTitle("绘制椭圆");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBounds(300, 300, 220, 220);
setContentPane(new DrawPanel());
}
public Xl1() {
initialize();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Xl1().setVisible(true);
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/5a0645835ae842cdaf0c3e9da590af3e.png)
- 方法二:Graphics类直接绘制填充图形
package draw;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
public class Xl12 extends JFrame {
DrawEllipsePanel ellipsePanel = new DrawEllipsePanel();
class DrawEllipsePanel extends JPanel{
@Override
public void paint(Graphics g) {
g.drawOval(30, 20, 80, 50);
g.drawOval(150, 10, 50, 80);
g.fillOval(40, 90, 50, 80);
g.fillOval(140, 110, 80, 50);
}
}
public Xl12() {
setTitle("绘制椭圆");
setBounds(100, 100, 269, 222);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(ellipsePanel);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Xl12().setVisible(true);
}
}