我在使用drawOval函数时遇到问题。我用它画圆圈但结果看起来不像圆圈。 我认为这种行为发生在Jpanel的某个高度之后。 向下滚动直到结束,您可以得到如下图所示的结果。 有人可以为此提供解释吗?
Result after Execute the sample program
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class TestMain
{
public static void main(String[] args)
{
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JScrollPane jsp = new JScrollPane();
jsp.setViewportView(new TestPanel());
f.getContentPane().add(jsp);
f.setSize(500,400);
f.setLocation(200,200);
f.setVisible(true);
}
}
class TestPanel extends JPanel
{
public TestPanel()
{
setPreferredSize(new Dimension(1960 , 77660240));
setBackground(Color.white);
}
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.drawRect(30, 77660141, 100, 20);
g2.drawOval(15, 77660141, 10, 10);
g2.draw(new Ellipse2D.Double(140, 77660141,
10,
10));
g2.draw(new Ellipse2D.Double(160, 77660141,
10,
10));
g2.draw(new Ellipse2D.Double(180, 77660141,
10,
10));
g2.draw(new Ellipse2D.Double(200, 77660141,
30,
30));
}
}
答案 0 :(得分:0)
将面板的尺寸更改为更合理的,例如:1000,它将正常工作。