2017-08-14 6 views
0

GUIをデコレートするためにJLayerを使用しました。背景色は毎秒変更されます。ここにイメージがあります。この画像でJLayerを使用しているGUI

enter image description here

あなたはタイマーに登場する青と黄色の線を見ることができました。私は、テキストエリアにテキストが変化しているので、これらのラインが現れていることに気付きました。新しいエリアがテキストエリアに表示されたときにも同様のことが起こります。

これらの行をどのように削除できましたか?

class MyLayerUISubclass extends LayerUI<JComponent>{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 

    public void paint(Graphics g, JComponent c){ 

     super.paint(g, c); 

     Graphics2D g2 = (Graphics2D) g.create(); 

     int red = (int) (Math.random()*255); 
     int green = (int) (Math.random()*255); 
     int blue = (int) (Math.random()*255); 

     Color startColor = new Color(red, green, blue); 

     red = (int) (Math.random()*255); 
     green = (int) (Math.random()*255); 
     blue = (int) (Math.random()*255); 

     Color endColor = new Color(red, green, blue); 

     int w = c.getWidth(); 
     int h = c.getHeight(); 
     g2.setComposite(AlphaComposite.getInstance(
       AlphaComposite.SRC_OVER, .5f)); 
     g2.setPaint(new GradientPaint(0, 0, startColor, 0, h, endColor)); 
     g2.fillRect(0, 0, w, h); 

     g2.dispose(); 

    } 

} 

ありがとうございました!

+2

代わりに 'JLabel'を使用してみませんか? – trashgod

+0

ありがとう!それは働いた – user007

+0

[あなた自身の質問に答えることができます](http://meta.stackoverflow.com/q/17463/163188)。 – trashgod

答えて

0

JTextFieldを使用する代わりに、私はtrashgodが提案したようにJLabelを使用しました。

関連する問題