您的位置:

关于java.awt.shape有圆形吗的信息

本文目录一览:

java java.awt.shape

画三角形为啥不用drawline呢 - -!Graphics

这是shape的描述

Shape 接口提供了表示一些几何形状的对象的定义。Shape 是由 PathIterator 对象描述的,它可以表示 Shape 的轮廓以及确定该轮廓如何将 2D 平面划分成内点和外点的规则。每个 Shape 对象都提供回调,以获取几何形状的边框,确定点或矩形是部分还是全部位于 Shape 内部,并检索一个描述 Shape 轮廓的轨迹路径的 PathIterator 对象。

内部定义:当且仅当以下条件成立时,才认为某个点位于 Shape 内:

该点完全位于 Shape 边界内,或者

该点恰好位于 Shape 边界上,并且 X 轴正方向上紧邻该点的空间完全处于边界之内,或者

该点恰好在水平边界分段上,并且 Y 轴正方向上紧邻该点的空间完全处于边界之内。

contains 和 intersects 方法将 Shape 内部视为可以填充的封闭区域。这意味着为了确定某个 shape 是否包含矩形或与矩形相交,或者确定某个 shape 是否包含一个点,这些方法将隐式地认为未闭合的 shape 是闭合的。

问一个问题,JAVA上可不可以做出来一个圆形的按钮?

可以自定义的

贴代码给你看下

import java.awt.Color;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Graphics;

import java.awt.Shape;

import java.awt.SystemColor;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.geom.Ellipse2D;

import javax.swing.JButton;

import javax.swing.JFrame;

public class CircleButton extends JButton {

Shape shape;

Color bgColor = SystemColor.control;

public CircleButton() {

    this("未命名", null);

}

public CircleButton(String label) {

    this(label, null);

}

public CircleButton(String label, Color bgColor) {

    super(label); // 调用父类构造方法

    if (bgColor != null) {

      this.bgColor = bgColor;

    }

    Dimension size = this.getPreferredSize();

    size.width = size.height = Math.max(size.width, size.height);

    this.setPreferredSize(size); // 设置宽高等距

    this.setContentAreaFilled(false); // 不绘制内容区域

    this.setBorderPainted(false); // 不绘制边框

    this.setFocusPainted(false); // 不绘制焦点状态

}

protected void paintComponent(Graphics g) {

    // 如果鼠标按下,isArmed()方法返回true

    if (this.getModel().isArmed()) {

      g.setColor(java.awt.SystemColor.controlHighlight);

    } else {

      g.setColor(java.awt.SystemColor.controlShadow);

      g.setColor(this.bgColor); // 设置背景颜色

    }

    g.fillOval(0, 0, this.getSize().width - 1, this.getSize().height - 1); // 绘制圆形背景区域

    g.setColor(java.awt.SystemColor.controlShadow); // 设置边框颜色

    g.drawOval(0, 0, this.getSize().width - 1, this.getSize().height - 1); // 绘制边框线

    super.paintComponent(g);

}

public boolean contains(int x, int y) {

    if ((shape == null) || (!shape.getBounds().equals(this.getBounds()))) {

      this.shape = new Ellipse2D.Float(0, 0, this.getWidth(), this

          .getHeight());

    }

    return shape.contains(x, y);

}

}

class CircleButtonTest {

public static void main(String[] args) {

    JFrame jf = new JFrame("自定义按钮");

    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    jf.setSize(350, 280);

    jf.setLocationRelativeTo(null);

    jf.setLayout(new FlowLayout());

    Color arrColor[] = new Color[] { Color.blue, Color.black, Color.red,

        Color.yellow, Color.green };

    for (int i = 0; i  5; i++) {

      CircleButton cb = new CircleButton("圆形按钮" + (i+1),arrColor[i]);

      jf.getContentPane().add(cb);

      cb.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {

          System.out.println("按钮");

        }

      });

    }

    jf.setVisible(true);

}

}

java设计图形(Shape)类及其子类(Circle、Rectangle)

你好,刚好闲着帮你写一个:

Shape类:

public class Shape {

protected Point location;

public Shape(){

}

public double area(){

return 0.0;

}

}

Circle类:

public class Circle extends Shape{

private int r;

public Circle() {

}

public Circle(Point center,int r) {

super.location=center;

this.r = r;

}

public double area() {

return Math.PI*r*r ;

}

}

Rectangle类:

public class Rectangle extends Shape{

private int width;

private int height;

public Rectangle() {

}

public Rectangle(Point o,int width, int height) {

location=o;

this.width = width;

this.height = height;

}

public double area() {

return width*height;

}

}

我这里图方便,在创建圆的时候直接用圆心和半径创建,还有矩形也是用一个点位置和长宽创建,所以还要加一个点类:

public class Point {

public int x;

public int y;

public Point() {

}

public Point(int x, int y) {

this.x = x;

this.y = y;

}

}

用java怎样画椭圆?

你的问题是是使用java画椭圆,可以使用awt和swing类库实现

画椭圆可以通过画矩形及其内切椭圆实现,示例代码如下

如果只需要椭圆,则无需g2.draw(rect);

class DrawPanel extends JPanel {

public void paintComponent(Graphics g) {

super.paintComponent(g);

Graphics2D g2 = (Graphics2D) g;

// 画矩形

double leftX = 100;

double topY = 100;

double width = 200;

double height = 150;

Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height);

g2.draw(rect);

// 画rect的内切椭圆

Ellipse2D ellipse = new Ellipse2D.Double();

ellipse.setFrame(rect);

g2.draw(ellipse);

}

}

关于java.awt.shape有圆形吗的信息

2022-11-29
关于css加js留言气泡的信息

本文目录一览: 1、CSS怎么做这种气泡,里面的文字增多,气泡自动变大,文字不超出气泡。 2、如何在css中 加入js呢 3、用div+css 和JS 和织梦系统。。。可以做出能留言的网站吗、? CS

2023-12-08
关于autocad三维模型变实体的信息

2022-11-29
关于javah5的信息

2022-12-02
关于cisjsbsnd网站的信息

本文目录一览: 1、铁路信号微机联锁接口电路中的JSDPC-1000型动态继电器,可以用什么型号的继电器代替?十分感谢您的回答。 铁路信号微机联锁接口电路中的JSDPC-1000型动态继电器,可以用什

2023-12-08
关于extjs6.0.1gpl的信息

本文目录一览: 1、extjs 收费吗 2、extjs当前最新版本 3、extjs6.2 早期访问版 和gpl版的区别 extjs 收费吗 商业应用都是收费的。不过他倒是不会找你要的。很多读者对这个问

2023-12-08
关于二货朋友的c语言信件的信息

2022-11-22
关于cad电气版和机械版的区别的信息

2022-11-27
关于3230可以运行2个java吗的信息

2022-11-16
关于java3d的信息

2023-01-07
关于jsaas源码下载的信息

本文目录一览: 1、为什么saas软件不能提供源代码 2、有ueeshop3.0跨境电商外贸建站系统源码吗?? 3、谁有jsaas-dev的开发版源码? 4、企业线上培训SaaS平台的主要学习场景都有

2023-12-08
关于cjscmssy的信息

本文目录一览: 1、大金cms系列RZP400SY1和RZP450SY1,哪一款更好!有能提供两款的具体参数对比的吗 2、我的电脑CMS设了密码,现在忘了,如何破除!!!!! 3、rs.MoveNex

2023-12-08
关于python画十七边形的信息

2022-11-09
关于还有必要再转到java吗的信息

2022-11-22
关于现代风格方形角几cjjsf的信息

本文目录一览: 1、一个正方形画一条线有几个角几个直角 2、一个三角形在上面一↑正方形在下面有几↑直.角几↑锐角几个纯角 3、正方形几个角几个顶点几条边 4、角几圆形还是方形好 5、一个正方形几个角几

2023-12-08
关于candence17.4如何画电气螺丝孔的信息

2023-01-03
关于python可视化和power的信息

2022-11-19
关于basenamephp的信息

2022-11-25
关于cad同种对象s的信息

2023-01-04
关于cad什么样的文件才能导入sketchup的信息

2023-01-03