java画出斜椭圆_【转】画图java源代码,只画直线,矩形,椭圆
/*
*只画直线,矩形,椭圆,只能向右下角画
*
*PainterPanel extends JPanel implements MouseListener
*addMouseListener(this);
*
*JToggleButton
*
*hxz*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class PainterPanel extends JPanel implements MouseListener{
int shape=-1; //图案类型
Point[] point=new Point[2]; //记录鼠标拖动的起始点和终点
public PainterPanel(){
super(); //调用父类构造函数
this.setBackground(Color.white); //设置背景颜色
point[0]=new Point(-1,-1); //初始化变量
point[1]=new Point(-1,-1);
addMouseListener(this); //增加鼠标事件
}
public void mouseReleased(MouseEvent e){ //鼠标释放事件
point[1]=new Point(e.getX(),e.getY()); //设置终点位置
repaint(); //重绘屏幕
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
public void mousePressed(MouseEvent e){ //鼠标按下时事件
point[0]=new Point(e.getX(),e.getY()); //设置起始点位置
}
public void paint(Graphics g){
super.paint(g);
switch (shape){ //根据shape值绘制图形
case 0:
g.drawLine(point[0].x,point[0].y,point[1].x,point[1].y); //绘线
break;
case 1:
int width=point[1].x-point[0].x;
int height=point[1].y-point[0].y;
g.drawOval(point[0].x,point[0].y,width,height); //绘椭圆
break;
case 2:
width=point[1].x-point[0].x;
height=point[1].y-point[0].y;
g.drawRect(point[0].x,point[0].y,width,height); //绘矩形
break;
}
}
public void drawShape(int shape){
this.shape=shape;
}
}
/*
*JToggleButton
*
*JToolBar
*
*hxz*/
public class PainterDemo extends JFrame{
JToggleButton[] button=new JToggleButton[3]; //按钮组
PainterPanel painter=new PainterPanel(); //绘图面板
public PainterDemo(){
super("Java画图程序"); //调用父类构造函数
String[] buttonName={"直线","椭圆","矩形"}; //按钮文字
DrawShapeListener buttonListener=new DrawShapeListener(); //按钮事件
JToolBar toolBar=new JToolBar(); //实例化工具栏
ButtonGroup buttonGroup=new ButtonGroup(); //实例化按钮组
for (int i=0;i
button[i]=new JToggleButton(buttonName[i]); //实例化按钮
button[i].addActionListener(buttonListener); //增加按钮事件处理
buttonGroup.add(button[i]); //增加按钮到按钮组
toolBar.add(button[i]); //增加按钮到工具栏
}
Container container=getContentPane(); //得到窗口容器
container.add(toolBar,BorderLayout.NORTH); //增加组件到容器上
container.add(painter,BorderLayout.CENTER);
setSize(300,200); //设置窗口尺寸
setVisible(true); //设置窗口为可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
}
//内部类
class DrawShapeListener implements ActionListener{ //按钮事件处理
public void actionPerformed(ActionEvent e){
for (int i=0;i
if (e.getSource()==button[i]){ //判断来自于哪个按钮
painter.drawShape(i); //绘制图形
}
}
}
}
public static void main(String[] args){
new PainterDemo();
}
}
java画出斜椭圆_【转】画图java源代码,只画直线,矩形,椭圆相关推荐
- java 删除已画出的线_如何删除java中的绘制线?
问题是如何删除旧行?我的意思是,只在屏幕上显示当前的x和y行,使两行之间的交点"跟随"鼠标指针. 这是更新的代码: import javax.swing.*; import jav ...
- java椭圆_如何用java画椭圆
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 利用java画出椭圆.也就是鼠标一边移动一边显示出椭圆,如何做到请大神指教 这是我写的(没有达到我自己的要求): import java.awt.*; i ...
- 怎样快速画出一个正方体_小学数学非常有效的“画图”解题法,快速解题的“金钥匙”...
小学阶段的数学主要培养的是孩子的逻辑思维能力,是从形象思维逐步过度到抽象思维的过程,如果在小学阶段没有将基础打牢,那么等孩子上初中后面对更复杂的学习内容,就会变得更吃力. 在小学数学中,"画 ...
- 根据文法画出语法树_更多确定子句语法
本章有两个主要目标: 1.研究DCG表示法提供的两个重要功能:额外的参数和额外的 目标. 2.讨论DCGs的现状和局限性. 1 额外参数 在上一章中,我们介绍了基本的DCG表示法.但是DCG所提供的 ...
- python根据频率画出词云_利用pandas+python制作100G亚马逊用户评论数据词云
原标题:利用pandas+python制作100G亚马逊用户评论数据词云 数据挖掘入门与实战 公众号: datadw 我们手里面有一个差不多100G的亚马逊用户在购买商品后留下的评论数据(数据格式为j ...
- java画太极加图片_新手初学java 尝试编程绘画太极图
我是个新手,对java理解还不深入,看了些java方面的基础视频,自己尝试着把中国的古老的太极图给画出来,经过一些思考和动手,终于把太极图给绘画出来. 记得以前某位高手也画过类似的太极图,不过当时自己 ...
- java中画房子的程序_房子用java绘图(控制台)
我必须制作一个程序,要求用户输入高度和长度(均为偶数),然后程序将绘制一个房子.房子的屋顶是(宽度/ 2)行数.示例程序应如下所示: Enter height and width of the hou ...
- opengl如何画出一个球_少儿美术绘画教程:毛线球
小朋友们,你们平时画画有没有遇到过没有灵感的时候,面对画纸却不知道画些什么呢?今天我们来介绍一种创意思维,叫发散性思维.以一个毛线球为出发点.通过毛线球,我们可以想到圆球,通过圆球我们可以想到圆形. ...
- 怎样快速画出一个正方体_素描教程:新手如何快速学会正方体
新手怎么画素描正方体? 系统学素描,一般情况下老师都会让你画一下正方体.那么对于我们新手来说,画正方体不难,难就在它的透视结构不好把握.下面我们来学习新手怎么画素描正方体. 结构素描画法 画石膏像正方 ...
最新文章
- Windows客户端C/C++编程规范“建议”——函数调用
- 平均数、中位数和众数及它们之间的关系
- Select下拉列表框(添加、删除option)
- 计算机科学与技术 单片机,单片机-兰州交通大学计算机科学与技术实验教学中心...
- java的部署目录在哪里_Java:Tomcat的部署实例之资源目录
- 垃圾收集算法,垃圾收集器_弱,弱,最弱,利用专家参考来管理垃圾收集器
- 浓浓的亲情 2008-10-6 8:53:00 (21ic)
- 支付宝第三方应用代调用API关系说明
- 要重复多少次变成潜意识_潜意识成功法则
- 电脑键盘为什么无法输入
- 【Fragment】FragmentManager和FragmentTransaction使用
- 小蓝本 第一本 《因式分解技巧》 第七章 综合运用 笔记 (第七天)
- 使用腾讯云服务器搭建离线(中转)网盘
- “狙击”特斯拉:电动汽车后起之秀的最后一战
- Win7下实现磁盘软Raid1
- 天涯明月刀7月4号服务器维护,7月24日服务器例行维护公告(已完成)
- 设计师怎么优雅的薅羊毛——技能get!!
- 另一种存在,入土为安,
- 惠普HP Deskjet F378 多功能一体机驱动
- “造物者”是一群程序员,程序员将是未来世界的“造物者”