基于JFrame下建立的框架添加面板2D图形绘制
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Arc2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class newFrame {
public static void main(String[] args) {
drawFrame jf = new drawFrame();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class drawFrame extends JFrame
{
public drawFrame()
{
this.setTitle("框架设计");
this.setSize(600, 400);
this.setLocationRelativeTo(null);
this.setResizable(false);
/**
* 为框架添加内容
* 添加一个Panel面板
*/
drawPanel jp = new drawPanel();
this.add(jp);
}
}
class drawPanel extends JPanel
{
public drawPanel()
{
this.setBackground(Color.lightGray);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.RED);
g.drawLine(0, 0, 200, 300);
g.drawRect(310, 320, 60, 40);
g.drawString(" Hello, World",75,100);
Graphics2D g1 = (Graphics2D) g;
this.draw(g1);
}
private void draw(Graphics2D g) {
g.setPaint(Color.BLACK);
Rectangle2D rect = new Rectangle2D.Double(200,200,100,100);
Line2D line = new Line2D.Double(50, 40,50, 150);
Ellipse2D e = new Ellipse2D.Double(150, 150, 200, 50);
/**
Arc2D a=new Arc2D.Double(startx,starty,width,height,startangle,
extent ,arcangle,type );
*/
g.draw(rect);
g.draw(line);
g.draw(e);
}
}
运行截图