java - 通过drawline方法创建的线,在调整表单大小时消失

标签 java swing java-2d

我有一个jlable。我要在它上面画一个图形。但是我意识到用画线方法创建的线在调整框架大小时消失了。

这是我的代码。我想知道如何避免在调整大小时消失。即使调整 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. 您可以创建自己的类,该类从 JLabel 扩展,并有一个额外的方法来决定是否必须绘制线条。

    在这个新类的重写 paintComponent() 方法中,在 super.paintComponent() 调用之后绘制线条。

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

关于java - 通过drawline方法创建的线,在调整表单大小时消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25114446/

相关文章:

java - Iframe Youtube 视频使用 DialogFragment 显示黑屏,并且 Webview 中仅播放音频

java - 无法执行目标 org.apache.maven.plugins :maven-release-plugin:2. 5.3:prepare

java - Mybatis几个jndi名称

java - 如何在 Android java 代码中同时使用 CordovaActivity 和 AppCompatActivity?

java - java发生异常

java - 使用 getResource() 检索和显示 JList 中的图标

java - 在 JTable 链接模型上同步删除元素以避免 NullPointerException?

java - 动态大小面板的最佳布局

java - 平滑锯齿状路径

java - 强制完全重绘 Jpanel Java2D