java如何用drawString()绘制文字(三行代码)

这是在JFrame类中的窗口上打印文字,也就是打印字符串

需要

paint(Graphics g) {

需要该函数中的画笔g

代码:

g.setColor(Color.BLUE);
g.setFont(new Font("仿宋",Font.BOLD,30));     //字体,风格,字号
g.drawString(str,x,y);         //在(x,y)处打印字符串str

函数形式:

static void drawWord(Graphics g,String str,int x,int y,Color color){
    g.setColor(color);
    g.setFont(new Font("仿宋",Font.BOLD,30));
    g.drawString(str,x,y);
}

调用: 

GameUtil.drawWord(g,"你好",300,400,Color.BLUE);

效果:


附带一个如何打印计时

TIME=System.currentTimeMillis();                //开始时间=当前时间
if(不结束) END=System.currentTimeMillis();                //结束时间=当前时间

 结束时间不停地更新,而开始时间只在初始函数中更新

这样结束时间-开始时间就是游戏时间

GameUtil.drawWord(g,""+(GameUtil.END_TIME-GameUtil.START_TIME)/1000,100,150,Color.BLUE);

 

-------------------------------------------------------------------------------------------------

下面有字

我也不想水长度,实在是发不出去

上面有字

.................................................................

 ......................................&&.........................

 ....................................&&&..........................

 .................................&&&&............................

 ...............................&&&&..............................

 .............................&&&&&&..............................

 ...........................&&&&&&....&&&..&&&&&&&&&&&&&&&........

 ..................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&..............

 ................&...&&&&&&&&&&&&&&&&&&&&&&&&&&&&.................

 .......................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.........

 ...................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&...............

 ..................&&&   &&&&&&&&&&&&&&&&&&&&&&&&&&&&&............

 ...............&&&&&@  &&&&&&&&&&..&&&&&&&&&&&&&&&&&&&...........

 ..............&&&&&&&&&&&&&&&.&&....&&&&&&&&&&&&&..&&&&&.........

 ..........&&&&&&&&&&&&&&&&&&...&.....&&&&&&&&&&&&&...&&&&........

 ........&&&&&&&&&&&&&&&&&&&.........&&&&&&&&&&&&&&&....&&&.......

 .......&&&&&&&&.....................&&&&&&&&&&&&&&&&.....&&......

 ........&&&&&.....................&&&&&&&&&&&&&&&&&&.............

 ..........&...................&&&&&&&&&&&&&&&&&&&&&&&............

 ................&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&............

 ..................&&&&&&&&&&&&&&&&&&&&&&&&&&&&..&&&&&............

 ..............&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&............

 ...........&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&......&&&&............

 .........&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.........&&&&............

 .......&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&...........&&&&............

 ......&&&&&&&&&&&&&&&&&&&...&&&&&&...............&&&.............

 .....&&&&&&&&&&&&&&&&............................&&..............

 ....&&&&&&&&&&&&&&&.................&&...........................

 ...&&&&&&&&&&&&&&&.....................&&&&......................

 ...&&&&&&&&&&.&&&........................&&&&&...................

 ..&&&&&&&&&&&..&&..........................&&&&&&&...............

 ..&&&&&&&&&&&&...&............&&&.....&&&&...&&&&&&&.............

 ..&&&&&&&&&&&&&.................&&&.....&&&&&&&&&&&&&&...........

 ..&&&&&&&&&&&&&&&&..............&&&&&&&&&&&&&&&&&&&&&&&&.........

 ..&&.&&&&&&&&&&&&&&&&&.........&&&&&&&&&&&&&&&&&&&&&&&&&&&.......

 ...&&..&&&&&&&&&&&&.........&&&&&&&&&&&&&&&&...&&&&&&&&&&&&......

 ....&..&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&...........&&&&&&&&.....

 .......&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&..............&&&&&&&....

 .......&&&&&.&&&&&&&&&&&&&&&&&&..&&&&&&&&...&..........&&&&&&....

 ........&&&.....&&&&&&&&&&&&&.....&&&&&&&&&&...........&..&&&&...

 .......&&&........&&&.&&&&&&&&&.....&&&&&.................&&&&...

 .......&&&...............&&&&&&&.......&&&&&&&&............&&&...

 ........&&...................&&&&&&.........................&&&..

 .........&.....................&&&&........................&&....

 ...............................&&&.......................&&......

 ................................&&......................&&.......

 .................................&&..............................

 ..................................&..............................

 -------------------------------------------------------------------------------------------------

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
要让文字发光,可以使用 Java Graphics2D 的阴影效果来实现。以下是一个示例代码: ```java import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.font.TextLayout; import java.awt.geom.Rectangle2D; import javax.swing.JFrame; import javax.swing.JPanel; public class TextGlowExample extends JPanel { private static final long serialVersionUID = 1L; private String text = "Hello, World!"; private Font font = new Font("Arial", Font.BOLD, 50); private Color color = Color.YELLOW; private int glowSize = 10; public TextGlowExample() { setPreferredSize(getPreferredSize()); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; // 设置字体和颜色 g2d.setFont(font); g2d.setColor(color); // 计算文字的大小和位置 TextLayout textLayout = new TextLayout(text, font, g2d.getFontRenderContext()); Rectangle2D bounds = textLayout.getBounds(); int x = getWidth() / 2 - (int) bounds.getWidth() / 2; int y = getHeight() / 2 + (int) bounds.getHeight() / 2; // 开启抗锯齿和阴影效果 g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY); g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE); g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); // 绘制文字的阴影 g2d.setColor(Color.WHITE); for (int i = 0; i < glowSize; i++) { g2d.setStroke(new java.awt.BasicStroke((float) (glowSize - i))); textLayout.draw(g2d, x, y + i); } // 绘制文字 g2d.setColor(color); g2d.setStroke(new java.awt.BasicStroke(1f)); textLayout.draw(g2d, x, y); } @Override public java.awt.Dimension getPreferredSize() { return new java.awt.Dimension(300, 200); } public static void main(String[] args) { JFrame frame = new JFrame("Text Glow Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new TextGlowExample()); frame.pack(); frame.setVisible(true); } } ``` 在上面的代码中,我们使用了 `TextLayout` 类来计算文字的大小和位置,并使用了 `RenderingHints` 来开启抗锯齿和阴影效果。在绘制文字时,我们首先绘制文字的阴影,然后再绘制文字本身,从而实现了发光的效果。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

int 我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值