gpt4 book ai didi

Java关于图形坐标的问题

转载 作者:行者123 更新时间:2023-12-02 08:45:59 25 4
gpt4 key购买 nike

如果我创建一个 800x600 像素的 JFrame 并从 (0,0) 到 (800,600) 画一条线,它不会从一个角到另一个角,所以 (0,0) 和 (800,600) 在哪里)?这是代码

import java.awt.Graphics;

import javax.swing.JFrame;

public class Point0_0test extends JFrame {

public Point0_0test() {
setTitle("Test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800, 600);
setLocationRelativeTo(null);
}

@Override
public void paint(Graphics g) {
super.paint(g);
g.drawLine(0, 0, 800, 600);
}

public static void main(String[] args) {
Point0_0test test = new Point0_0test();
test.setVisible(true);
}

}

Here you can see what appears when the program is running

最佳答案

如果您想要 800 x 600 像素的绘图区域,请设置 800 x 600 像素的绘图区域。谁在乎框架有多大?

这是我创建的一个简单的绘图 GUI。我将其设置为 400 x 300 像素,以便它更容易适合答案。

Simple Drawing Panel

这是代码。这是一个最小的、可运行的示例,用于设置绘图区域的大小。

import java.awt.BasicStroke;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class SimpleDrawingArea implements Runnable {

public static void main(String[] args) {
SwingUtilities.invokeLater(new SimpleDrawingArea());
}

@Override
public void run() {
JFrame frame = new JFrame("Simple Drawing Panel");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new DrawingPanel());
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}

public class DrawingPanel extends JPanel {

private static final long serialVersionUID = 1L;

public DrawingPanel() {
this.setPreferredSize(new Dimension(400, 300));
}

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setStroke(new BasicStroke(4f));
g2d.drawLine(0, 0, 400, 300);
}

}

}

关于Java关于图形坐标的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61086862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com