由drawline方法创建的线在调整窗体大小时消失

时间:2014-08-04 08:24:11

标签: java swing java-2d

我有一个jlable。我将在它上面绘制一个图形。但我意识到画线方法创建的一条线在调整框架大小时会消失。

这是我的代码。我想知道如何避免在resize时消失。我希望保持行甚至调整大小的jframe。

  void graph(JComponent jcom,int thick,int height,int xpos,int ypos,Color col){
        Graphics2D gfx=(Graphics2D) jcom.getGraphics();
        gfx.setStroke(new BasicStroke(thick));
        gfx.setPaint(col);
        gfx.drawLine(xpos, ypos, xpos, ypos-height);
    }  

按钮点击代码

graph(jLabel1, 10, 100, 200, 200, Color.GREEN);

1 个答案:

答案 0 :(得分:3)

  1. 您可以创建自己的类,该类从JLabel延伸,并有一个额外的方法来决定是否必须绘制线条。

    在此新课程的重写paintComponent()方法中,请在super.paintComponent()来电后绘制您的专线。

  2. 在您JLabel的父组件中应用建议1中的逻辑。 (不确定这是否适用于所有情况)