在JFrame中将Rectangle绘制为Progressbar

时间:2013-11-19 11:11:58

标签: java swing jframe jpanel progress-bar

我有一个带有BorderLayout()的JFrame。在SOUTH Layout Constraint中,我想放一个进度条。不是动态的,而是一个不时被设置为值(0-100)的一个。 我想到了一个JPanel,我在其中绘制了一个具有适当宽度的Rectangle。 如何在JPanel中绘制一个矩形?

JFrame frame = new JFrame();
        frame.setBounds(100, 100, 790, 539);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(new BorderLayout(0,0));
        frame.setResizable(false);

        JPanel panelSouth = new JPanel();

        frame.getContentPane().add(panelSouth, BorderLayout.WEST);

我在想什么,也许我可以调整JPanel panelSouth的大小。但是在Borderlayout中,它总是延伸到整个南方。

1 个答案:

答案 0 :(得分:3)

不要从头开始,而是坚持使用JProgressBar来简化事件编码。您可以在paint()中的BasicProgressBarUI方法的实现中绘制一个矩形,如此处所示,使用fillOval()中的paintIndeterminate()绘制椭圆。

image