我正在尝试可视化整数数组中的值。
它们应该像条形图,但只是条形图,没有轴等
我使用 Java Swing 作为 GUI。
现在应该只绘制一个矩形,但无论我将 g.fillRect(0,0,width,height)
中的高度增加多高,它都会绘制为一个正方形。
这是我的代码:
public class MyClass extends JPanel
{
...
public void paint(Graphics g)
{
g.fillRect(0,0,10,100);
}
public void draw()
{
JFrame myframe = new JFrame("FrameTest");
myframe.setSize(new Dimension (groesse,groesse));
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mypanel = new JPanel();
mypanel.setLayout(new FlowLayout(FlowLayout.LEFT));
mypanel.setSize(new Dimension(256,256));
mypanel.add(new MyClass(),BorderLayout.SOUTH);
myframe.add(mypanel,BorderLayout.SOUTH);
myframe.setVisible(true);
}
我很想发布输出的图片,但 SO 不希望我...
最佳答案
使用BorderLayout
而不是FlowLayout
。不要在同一个 BorderLayout
区域中添加两个组件。将您的 MyClass
实例放入 BorderLayout.CENTER
中。
还要将MyClass
的getPreferredSize
方法重写为适当的值(绘图区域的大小),并忘记setSize
;在使其可见之前,使用 pack
来打包框架。
最后,使用 swing 时不要覆盖 paint
,而是覆盖 paintComponent
。
关于Java Swing 绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30740510/