Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.114.94] |
|
Сообщ.
#1
,
|
|
|
В данном примере показан один из вариантов создания окна с текстом, который отбрасывает тень.
import java.awt.*; import java.awt.font.*; import java.awt.geom.*; import java.awt.event.*; class ShEffect extends Frame { ShEffect (String s) { super(s); setSize(700, 200); setVisible(true); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent ev) { System.exit(0); } }); } public void paint (Graphics gr) { Graphics2D g=(Graphics2D)gr; int w=getSize().width, h=getSize().height; FontRenderContext frc=g.getFontRenderContext(); String s="The shadow effect"; Font f=new Font("Serif", Font.BOLD, h/3); TextLayout tl=new TextLayout(s, f, frc); AffineTransform at=new AffineTransform(); at.setToTranslation(w/2-tl.getBounds().getWidth()/2, h/2); Shape sh=tl.getOutline(at); g.draw(sh); AffineTransform atsh=new AffineTransform(1, 0.0, 1.5, -1, 0.0, 0.0); g.transform(at); g.transform(atsh); Font df=f.deriveFont(atsh); TextLayout dtl=new TextLayout(s, df, frc); Shape sh2=dtl.getOutline(atsh); //Рисуем контур текста без заливки g.fill(sh2); } public static void main (String[] args) { new ShEffect("The shadow effect"); } } [Автор - Angie] |