使用 JLayer 的 GUI
GUI using JLayer
我用JLayer装饰了GUI,背景颜色每秒都在变化。这是图片。
在此图像中,您可以看到计时器中出现蓝黄线。我意识到这些行的出现是因为文本在文本区域中发生了变化,类似的事情发生在文本区域中显示新表达式时。
如何删除这些行?
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();
}
}
提前致谢!
我没有使用 JTextField,而是按照 trashgod 的建议使用了 JLabel。
我用JLayer装饰了GUI,背景颜色每秒都在变化。这是图片。
在此图像中,您可以看到计时器中出现蓝黄线。我意识到这些行的出现是因为文本在文本区域中发生了变化,类似的事情发生在文本区域中显示新表达式时。
如何删除这些行?
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();
}
}
提前致谢!
我没有使用 JTextField,而是按照 trashgod 的建议使用了 JLabel。