java awt区域_java的awt包中有没有表示区域的类或者方法,可以传递一个Rectangle

java的awt包中有没有表示区域的类或者方法,可以传递一个Rectangle

关注:219  答案:2  mip版

解决时间 2021-01-17 08:27

e6cb1a03ad541b3098697807b7bf1798.png

提问者逍遥风

2021-01-17 04:55

java的java.awt包中有没有一个表示区域的类或者方法,就类似于C#中的System.Drawing.Region(Rectangle rect)一样

最佳答案

e6cb1a03ad541b3098697807b7bf1798.png

二级知识专家一个超人

2021-01-17 06:08

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

final class RectPaintDemo extends JFrame {

final static private Dimension SIZE = new Dimension(800, 600);

public String getTitle() {return "RectPaintDemo";}

public Dimension getPreferredSize() {return SIZE;}

public Dimension getMinimumSize() {return SIZE;}

public Dimension getMaximumSize() {return SIZE;}

public Dimension getSize() {return SIZE;}

private Canvas canvas;

private Brush brush;

RectPaintDemo() throws HeadlessException {

init();

attachListeners();

doLay();

setVisible(true);

}

private void init() {

brush = new ShapeBrush();

canvas = new Canvas(brush);

}

private void attachListeners() {

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(1);

}

});

}

private void doLay() {

Container container = getContentPane();

container.add(canvas, BorderLayout.CENTER);

pack();

}

public static void main(String... args) {

System.setProperty("swing.defaultlaf", "com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

SwingUtilities.invokeLater(RectPaintDemo::new);

}

private interface Brush extends Observer {

void paint(Graphics g);

Component getOwner();

void setOwner(Component owner);

}

private static final class ShapeBrush implements Brush {

private Component owner;

private Rectangle contentObj = new Rectangle(20,20,40,30);

public Component getOwner() {

return owner;

}

public void setOwner(Component owner) {

this.owner = owner;

}

public void paint(Graphics g) {

Graphics2D g2 = (Graphics2D)g.create();

g2.fillRect(0,0,getOwner().getWidth(),getOwner().getHeight());

g2.translate(50, 50);

g2.rotate(Math.PI / 4);

g2.setColor(Color.YELLOW);

g2.draw(contentObj);

g2.dispose();

}

public void update(Observable o, Object arg) {

if (owner != null) owner.repaint();

}

}

private class Canvas extends JComponent {

private Brush brush;

private Canvas(Brush brush) {

super();

this.brush = brush;

brush.setOwner(this);

}

protected void paintComponent(Graphics g) {

super.paintComponent(g);

if (brush == null) return;

brush.paint(g);

}

}

}

全部回答

e6cb1a03ad541b3098697807b7bf1798.png

1楼魔法小仙子

2021-01-17 06:14

你好!

awt 中也有Rectangle类的

如有疑问,请追问。

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

点此我要举报以上信息!

推荐资讯

大家都在看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: java.awt.RectangleJava编程语言中的一个,用于表示一个矩形的位置和大小。它包含了四个整数型的变量,分别表示矩形的左上角的x坐标、y坐标,以及矩形的宽度和高度。这个提供了一些方法,可以用来操作矩形,比如判断两个矩形是否相交、获取矩形的面积等。在Java图形界面编程中,java.awt.Rectangle经常被用来表示组件的位置和大小。 ### 回答2: java.awt.RectangleJava语言中的一个,用于表示一个矩形对象。 Rectangle位于java.awt包,并且是一个抽象。它提供了一系列方法用于对矩形进行操作,例如增加、减少矩形的大小,判断两个矩形是否相交等。 Rectangle有四个主要的属性:x,y,width和height。x和y表示矩形的左上角坐标,而width和height表示矩形的宽度和高度。 Rectangle提供了许多方法来操作这些属性。例如,可以使用setLocation方法来设置矩形的左上角坐标,使用setSize方法来设置矩形的大小,使用contains方法来判断一个点是否在矩形内部等。此外,还可以使用intersect方法来判断两个矩形是否相交,使用union方法来获取包含两个矩形的最小矩形等。 Rectangle还提供了一些其他的方法来处理矩形。例如,可以使用translate方法来平移矩形,使用grow方法来扩大或缩小矩形的大小等。 总之,java.awt.RectangleJava语言中用于表示矩形的一个。它提供了一系列方法来操作矩形的属性,以及处理矩形的各种操作。通过使用Rectangle,我们可以方便地对矩形进行操作和处理。 ### 回答3: java.awt.RectangleJava编程语言中的一个,用于表示一个矩形的几何形状。它包含了矩形的位置和大小信息,可以用来进行矩形的操作和计算。 Rectangle提供了一系列方法,用于获取和设置矩形的坐标、宽度和高度。它还可以用于判断两个矩形之间的关系,比如判断是否相交、包含等。另外,Rectangle还提供了一些常用的方法,比如计算矩形的面积和周长,判断点是否在矩形内部等。 Rectangle可以在图形界面编程中用于绘制和操作矩形。通过设置Rectangle对象的属性,可以控制矩形的位置和大小,从而实现矩形的显示和交互效果。在页面布局中,Rectangle可以用来计算和调整组件的位置和大小,从而实现自适应和响应式的布局效果。 此外,Rectangle还可以与其他图形对象进行组合和操作。比如,可以通过Rectangle方法来计算两个矩形的并集、交集等。同时,还可以通过Rectangle方法来判断一个点是否在某个矩形内部,或者判断一个矩形是否与另一个图形对象相交等。 总之,java.awt.Rectangle一个非常常用的图形,可以方便地表示和操作矩形形状。它提供了丰富的方法,可以满足各种矩形操作的需求,并且可以与其他图形对象进行组合和处理,具有很大的灵活性和应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值