java立体文字效果怎么做?倾斜的怎么做?

BSO 2020-08-31 10:54:13 java常见问答 8689

在我们日常工作和生活中,java编程语言的使用越来越普遍化。今天主要为大家展示如何用java做出立体的和倾斜的文字效果,并通过实例代码为大家展示。

首先,我们需要知道的是实现这些效果是通过重写JComponent类的paint()方法,在该方法中使用Graphics类或者Graphics2D的一些方法,完成具有特效的文字绘制。

第一种是立体效果的文字,使用Graphics类的setFont()方法设置完字体、字型和字号后,使用Graphics类的setColor()方法将绘图上下文的前景色设置为灰色,然后使用Graphics类的drawString()方法绘制文本,并且每次绘制的文本都向右下方移动一小段距离,最后将绘图上下文的前景色更改为黑色,再绘制一次文本,从而实现立体字效果。用到的Graphics方法如下:

public abstract void drawString(String str, int x, int y); //str是绘制的文本内容,x、y是绘制点的坐标
public abstract void setFont(Font font); //Font是字体对象,其创建方法即可设置字体和大小
public Font(String name, int style, int size); //Font的构造方法,其中name是字体的名称,style是字体的样式,size是字体的大小
public abstract void setColor(Color color); //color是文本或图形设置的颜色对象
public Color(int r, int g, int b); //Color 的构造方法,其中rgb是其对应的RGB值
//Color中有一些静态常量,所以除了创建对象外还可直接用Color.red等常量来设置颜色

具体实现如下:

public class SolidTextPanel extends JPanel
{
    public void paint(Graphics g)
    {
        String value = "Java文字特效";
        int x = 16;
        int y = 100;
        Font font = new Font("宋体", Font.BOLD, 72);
        g.setFont(font);
        g.setColor(Color.GRAY);
        int i = 0;
        while (i < 8)
        {
            g.drawString(value, x, y);
            x += 1;
            y += 1;
            i++;
        }
        g.setColor(Color.BLACK);
        g.drawString(value, x, y);
    }
}

具体效果如下图:

java立体文字效果

第二种是倾斜效果的文字,使用Graphics2D类的setShear()方法,倾斜绘图上下文对象,然后使用从Graphics类继承的setFont()方法设置字体、字型和字号,使用drawString()方法绘制文本,从而实现倾斜文字的效果。

public abstract void shear(double shx, double shy);
//shx,shy分别是在正x轴、正y轴方向移动坐标的乘数,可以作为相应y、x坐标的函数(注意是相反的)

具体实现如下:

public class ShearTextPanel extends JPanel
{
    public void paint(Graphics g)
    {
        Graphics2D g2 = (Graphics2D) g;
        String value = "Java文字特效";
        int x = 10;
        int y = 250;
        Font font = new Font("华文行楷", Font.BOLD, 72);
        g2.setFont(font);
        g2.shear(0.1, -0.4);
        g2.drawString(value, x, y);
    }
}

具体效果如下图:

java倾斜文字效果

从上文我们可以了解到如何用java做出立体的和倾斜的文字效果。如果对java文字效果感兴趣,想要了解更多java基础,敬请关注奇Q工具网。

推荐阅读:

java特性有哪些?毕业设计参考文献有哪些?

java发送http方式有哪几种?相关实例展示

java的条件语句的语法是什么?详细实例展示