调整框架大小时,使圆心居中

0x游标

我正在尝试制作一个在a的中心绘制一个圆JFrame并使用绘制圆的程序paintComponent我的目标是即使将JFrame调整大小,也要使圆在框架中居中我尝试过并搜索了不同的东西,但是没有任何效果。我猜我必须使用repaint()和计时器,但不知道到底有多精确。我的代码如下:

import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ImageFrame extends JFrame {
    private static final long serialVersionUID = 1L;

    int width = 40;
    int height = 40;
    int x;
    int y;

    JPanel panel = new JPanel() {
        private static final long serialVersionUID = 2L;
        public void paintComponent(Graphics g) {
            super.paintComponents(g);
          g.drawOval(x, y, width, height);
        }
    };

    public ImageFrame() {
        add(panel);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(400, 300);
        x = (getWidth()/2) - (width/2)-20;
        y = (getHeight()/2) - (height/2)-40;
        setLocationRelativeTo(null);
        setVisible(true);
    }
}

更新:

我已经添加了TrashGod的方法,但是它说要删除@Override,然后如果运行了,则JFrame打开但没有圆圈。代码在下面,我已经paintComponent从旧代码中删除了

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ImageFrame extends JFrame implements {
    private static final long serialVersionUID = 1L;

    public ImageFrame() {
        addMouseListener(this);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(400, 300);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON);
        Dimension size = this.getSize();
        int d = 200;
        int x = (size.width - d) / 2;
        int y = (size.height - d) / 2;
        g.fillOval(x, y, d, d);
        g.setColor(Color.blue);
        g.drawOval(x, y, d, d);
    }
}
垃圾神

示例使圆心居中,并将尺寸调整为较小的尺寸,但是您可以将其设为d常数。基本步骤是相对于面板的当前大小进行渲染。调整包围框的大小以查看效果。添加RenderingHints,看到这里,让绘图浓烟。

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON);
        Dimension size = this.getSize();
        int d = 200;
        int x = (size.width - d) / 2;
        int y = (size.height - d) / 2;
        g.fillOval(x, y, d, d);
        g.setColor(Color.blue);
        g.drawOval(x, y, d, d);
    }

图像

更改示例

$ diff OldSwingPaint.java SwingPaint.java 
38a39,41
>             Graphics2D g2d = (Graphics2D) g;
>             g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
>                 RenderingHints.VALUE_ANTIALIAS_ON);
40c43
<             int d = Math.min(size.width, size.height) - 10;
---
>             int d = 200;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调整框架大小时,使圆心居中

来自分类Dev

调整大小时使图像居中

来自分类Dev

在屏幕调整大小时将Div居中

来自分类Dev

调整大小时全屏背景停留居中

来自分类Dev

调整窗口大小时居中对齐图像css

来自分类Dev

调整手机屏幕大小时,对齐不居中

来自分类Dev

调整窗口大小时在Bootstrap网格内居中的元素

来自分类Dev

调整窗口大小时如何保持元素居中

来自分类Dev

CSS-居中的div顶部在调整窗口大小时消失

来自分类Dev

在调整大小时将两个框居中

来自分类Dev

调整屏幕大小时出现居中徽标的问题

来自分类Dev

调整框架大小时渲染图像的时间荒谬可笑

来自分类Dev

在窗口调整大小时调整CALayer框架大小的方法?

来自分类Dev

将div水平和垂直居中,并在调整父级大小时保持居中

来自分类Dev

当MainWindow调整大小时,调整QDialog的大小

来自分类Dev

在页面上垂直居中放置图像,并在调整大小时保持宽高比

来自分类Dev

在页面上垂直居中放置图像,并在调整大小时保持宽高比

来自分类Dev

即使在调整大小时,也可以将div水平和垂直居中

来自分类Dev

html / CSS如何在调整窗口大小时使div始终居中

来自分类Dev

调整浏览器大小时,下拉菜单不会居中

来自分类Dev

调整浏览器大小时无法将下拉菜单居中

来自分类Dev

调整浏览器大小时居中的内容会移到页面的右侧

来自分类Dev

调整浏览器窗口大小时,块元素变大并且不会垂直居中

来自分类Dev

调整窗口大小时保持缩放的 NSScrollView 的内容居中可见

来自分类Dev

使组件居中并调整JFrame的大小

来自分类Dev

调整大小时淡入/淡出

来自分类Dev

调整大小时网站毁了

来自分类Dev

调整大小时图像模糊

来自分类Dev

调整大小时淡入/淡出

Related 相关文章

  1. 1

    调整框架大小时,使圆心居中

  2. 2

    调整大小时使图像居中

  3. 3

    在屏幕调整大小时将Div居中

  4. 4

    调整大小时全屏背景停留居中

  5. 5

    调整窗口大小时居中对齐图像css

  6. 6

    调整手机屏幕大小时,对齐不居中

  7. 7

    调整窗口大小时在Bootstrap网格内居中的元素

  8. 8

    调整窗口大小时如何保持元素居中

  9. 9

    CSS-居中的div顶部在调整窗口大小时消失

  10. 10

    在调整大小时将两个框居中

  11. 11

    调整屏幕大小时出现居中徽标的问题

  12. 12

    调整框架大小时渲染图像的时间荒谬可笑

  13. 13

    在窗口调整大小时调整CALayer框架大小的方法?

  14. 14

    将div水平和垂直居中,并在调整父级大小时保持居中

  15. 15

    当MainWindow调整大小时,调整QDialog的大小

  16. 16

    在页面上垂直居中放置图像,并在调整大小时保持宽高比

  17. 17

    在页面上垂直居中放置图像,并在调整大小时保持宽高比

  18. 18

    即使在调整大小时,也可以将div水平和垂直居中

  19. 19

    html / CSS如何在调整窗口大小时使div始终居中

  20. 20

    调整浏览器大小时,下拉菜单不会居中

  21. 21

    调整浏览器大小时无法将下拉菜单居中

  22. 22

    调整浏览器大小时居中的内容会移到页面的右侧

  23. 23

    调整浏览器窗口大小时,块元素变大并且不会垂直居中

  24. 24

    调整窗口大小时保持缩放的 NSScrollView 的内容居中可见

  25. 25

    使组件居中并调整JFrame的大小

  26. 26

    调整大小时淡入/淡出

  27. 27

    调整大小时网站毁了

  28. 28

    调整大小时图像模糊

  29. 29

    调整大小时淡入/淡出

热门标签

归档