【发布时间】:2016-10-16 20:03:07
【问题描述】:
我正在尝试通过阅读我在网上找到的教科书中的示例来学习 Java。我能够很容易地在书中做一个例子,但我想更进一步。当我为一个名为“同心圆”的程序编写代码时,我注意到我的圆圈没有缩放到窗口的大小,我认为它看起来很糟糕(如果我把窗口做得太小,圆圈就不会缩放,你只看到一个圆圈。我调整了我的代码,它似乎有点缩放但是当我让我的窗口太小或太大时看起来很糟糕。我希望我的 12 个圆圈适合窗口大小,无论大小窗户。我觉得我离它很近,但似乎无法绕开它。任何和所有的帮助都非常感谢,在此先感谢!
import java.awt.Graphics;
import javax.swing.JPanel;
public class Circles extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int width = getWidth();
int height = getHeight();
int x = width / 12;
int y = height / 12;
int buffersize = 0;
for (int i = 0; i < 12; i++)
{
g.drawOval(width / 2 - buffersize, height / 2 - buffersize, x + buffersize * 2, y + buffersize * 2);
buffersize += 10;
}
}
}
驱动类
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/**
*
* @author
*/
public class ConcentricCirclesTest
{
public static void main(String[] args)
{
//create a panel that will contain our drawing
Circles panel = new Circles();
//create a new frame to house the panel
JFrame application = new JFrame();
//set the frame to exit when closed
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.add(panel);
application.setSize(350, 350);
application.setVisible(true);
}
}
【问题讨论】:
-
“看起来很糟糕”是什么意思?发生了什么事?
-
抱歉含糊不清。如果我把窗口做得太小,圆圈会比窗口大,你只能看到图像的一部分。我希望每个圆圈彼此成比例,但与窗口大小保持一致。
-
您能告诉我们如何将面板添加到窗口吗?
-
当然,我编辑了帖子并添加了驱动程序类。
标签: java jframe window jpanel scale