JAVA学习---绘制图形
2013-09-13 11:16
387 查看
import java.awt.GridLayout; import javax.swing.JFrame; public class TestFigurePanel extends JFrame { public TestFigurePanel() { setLayout(new GridLayout(2,3,5,5)); add(new FigurePanel(FigurePanel.LINE)); add(new FigurePanel(FigurePanel.RECTANGLE)); add(new FigurePanel(FigurePanel.ROUND_RECTANGLE)); add(new FigurePanel(FigurePanel.OVAL)); add(new FigurePanel(FigurePanel.RECTANGLE, true)); add(new FigurePanel(FigurePanel.RECTANGLE, false)); add(new FigurePanel(FigurePanel.ROUND_RECTANGLE, true)); add(new FigurePanel(FigurePanel.OVAL, true)); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub TestFigurePanel frame = new TestFigurePanel(); frame.setSize(400,300); frame.setTitle("TestFigurePanel"); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import javax.swing.JPanel; public class FigurePanel extends JPanel { // define constants public static final int LINE = 1; public static final int RECTANGLE = 2; public static final int ROUND_RECTANGLE = 3; public static final int OVAL = 4; private int type = 1; private boolean filled = false; public FigurePanel() { } public FigurePanel(int type) { this.type = type; } public FigurePanel(int type, boolean filled) { this.type = type; this.filled = filled; } protected void paintComponent(Graphics g) { super.paintComponents(g); int width = getWidth(); int height = getHeight(); System.out.println("width = " + width + " heigth = "+ height); System.out.println("width = " + ((int)width*0.1) + " heigth = "+ height); switch (type) { case LINE: { g.setColor(Color.BLACK); g.drawLine(10, 10, width - 10, height - 10); g.drawLine(width - 10, 10, 10, height - 10); } case RECTANGLE: { g.setColor(Color.BLUE); if (filled) { g.fillRect((int)(0.1*width), (int)(0.1 * height), (int)(0.8 *width), (int)(0.8*height)); } else { g.drawRect((int)(0.1*width), (int)(0.1 * height), (int)(0.8 *width), (int)(0.8*height)); } } case ROUND_RECTANGLE: { g.setColor(Color.RED); if (filled) { g.fillRoundRect((int)(0.1*width), (int)(0.1 * height), (int)(0.8 *width), (int)(0.8*height), 40, 40); } else { g.drawRoundRect((int)(0.1*width), (int)(0.1 * height), (int)(0.8 *width), (int)(0.8*height), 40, 40); } } case OVAL: { g.setColor(Color.BLACK); if (filled) { g.fillOval((int)(0.1*width), (int)(0.1 * height), (int)(0.8 *width), (int)(0.8*height)); } else { g.drawOval((int)(0.1*width), (int)(0.1 * height), (int)(0.8 *width), (int)(0.8*height)); } } } } public void setType(int type) { this.type = type; } public int getType() { return type; } public void setFilled(boolean filled) { this.filled = filled; repaint(); } public boolean isFilled() { return filled; } public Dimension getPreferredSize() { return new Dimension(80, 80); } }
相关文章推荐
- java基础学习之面对对面的图形绘制 坦克
- java学习:Graphics绘制基本图形对象
- 学习Java过程中关于金字塔和镂空金字塔形状图形绘制的代码
- java 学习 图形界面程序设计 第二课 绘制简单图形
- JAVA学习(十)图形用户接口Swing
- 学习笔记:HTML5 Canvas绘制简单图形
- Java最佳图形解决方案 JFreeChart学习总结(1)
- Java学习笔记6——图形编程
- OpenGL学习(2)基本图形绘制
- Java中常见图形绘制方式与实现
- java图形绘制
- Java基本功练习二十(图形【时钟模拟、绘制弧形多边形折线段、显示图像、消息显示面板等】)
- 把Java面板中绘制的图形保存为图片的格式
- OpenGL入门学习——第三课 绘制几何图形的一些细节问题
- Java入门:绘制简单图形
- 第三十五节 java学习 —— java图形
- 【JAVA语言程序设计基础篇】--图形--练习绘制时钟
- android学习 4-25使用Path 绘制几何图形
- 【Cocos2d-X开发学习笔记】第10期:渲染框架之几何图形的绘制
- 使用java绘制图形验证码