
正文
绘制文字java代码 java绘画图的代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
怎么用java写这个文字的外轮廓
用java绘制弧形文字的方法是调用java 贰d图形处理的api实现的。 完整代码如下: // 引入需要的jar包 import java.awt.Container; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JPanel; //定义一个类 public class FontPanel extends JPanel { //定义一个画板,入参是图形g public void paintComponent(Graphics g) { super.paintComponent(g); Font f = new Font("SansSerif", Font.BOLD, 依四); 设置字体加粗 Font fi = new Font("SansSerif", Font.BOLD + Font.ITALIC, 依四);设置字体加粗,斜体 FontMetrics fm = g.getFontMetrics(f); //得到当前的font metrics FontMetrics fim = g.getFontMetrics(fi);//得到当前的font metrics String s依 = "Java "; String s贰 = "Source and Support"; 定义字符串 String s三 = " java 字体变形学习"; int width依 = fm.stringWidth(s依); 设置宽度 int width贰 = fim.stringWidth(s贰); int width三 = fm.stringWidth(s三); Dimension d = getSize(); 设置二维图形的维度 int cx = (d.width - width依 - width贰 - width三) / 贰; 计算绘制字体的x轴 int cy = (d.height - fm.getHeight()) / 贰 + fm.getAscent();计算绘制字体的y轴 g.setFont(f); g.drawString(s依, cx, cy); cx += width依; g.setFont(fi); g.drawString(s贰, cx, cy); cx += width贰; g.setFont(f); g.drawString(s三, cx, cy); } main方法测试: public static void main(String[] args) { JFrame frame = new JFrame(); frame.setTitle("NotHelloWorld贰"); frame.setSize(三50, 贰00); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); Container contentPane = frame.getContentPane(); contentPane.add(new FontPanel()); frame.show(); } } 运行结果
相关问答
Q1: java在图片上绘制文字,文字不完全在图片内时自动向内移动
可使使用界面来解决的
javatable
1 /**
工具栏
JToolBar
采用从左开始的
FlowLayout
布局
*/
2 JToolBar toolBar = new JToolBar();
3 toolBar.setBorderPainted(false); //
不画边界
4 toolBar.setLayout(new FlowLayout(FlowLayout.LEFT));
5
6 /**
窗体采用动态的
BorderLayout
布局,通过获取工具栏或状态栏的复选标记
进行界面的动态调整
*/
7 JSplitPane splitPane = new JSplitPane();
8 splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT); //
设置统计窗口分隔条
的方向
9 splitPane.setDividerLocation(300); //
设置分隔条的位置
10 splitPane.setOneTouchExpandable(true);
11 JCheckBoxMenuItem toolBarItem = new JCheckBoxMenuItem("
工具栏
(T)",
true);
12 JLabel statusLabel = new JLabel("
当前统计目标
:");
13 JCheckBoxMenuItem statusBarItem = new JCheckBoxMenuItem("
状态栏
(S)",
true);
14 /**
设置系统窗体布局并动态设置工具栏和状态栏
*/
15 private void setLayout()
16 {
5
17 if (toolBarItem.getState() ' statusBarItem.getState())
18 {
19 this.getContentPane().add(BorderLayout.NORTH, toolBar);
20 this.getContentPane().add(BorderLayout.CENTER, splitPane);
21 this.getContentPane().add(BorderLayout.SOUTH, statusLabel);
22 }
23 else if (toolBarItem.getState() !statusBarItem.getState())
24 {
25 this.getContentPane().add(BorderLayout.NORTH, toolBar);
26 this.getContentPane().remove(statusLabel);
27 }
28 else if (statusBarItem.getState() !toolBarItem.getState())
29 {
30 this.getContentPane().add(BorderLayout.SOUTH, statusLabel);
31 this.getContentPane().remove(toolBar);
32 }
33 else if (!toolBarItem.getState() !statusBarItem.getState())
34 {
35 this.getContentPane().remove(toolBar);
36 this.getContentPane().remove(statusLabel);
37 }
38 this.show(); //
添加或移去组件后刷新界面
39 }
Q2: java 字体 加横线
lz 你好
这个很好实现的 就用绘图机制绘制一下就行了 绘制文字和横线
代码如下:
import javax.swing.*;
import java.awt.*;
public class StringLine extends JFrame{
private MyPanel mp;
public StringLine(){
super("StringLine");
mp = new MyPanel();
getContentPane().add(mp);
setLocation(200,100);
setSize(100,100);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(3);
}
public static void main (String[] args) {
new StringLine();
}
}
//自定义面板类
class MyPanel extends JPanel{
//重写paintComponent方法
public void paintComponent(Graphics g){
g.drawString("价格 : 2.00元", 5,10);//绘制文字
g.drawLine(5,5,75,5);//绘制横线
}
}
Q3: 如何实现java画图程序,并可在已画的图上添加文字等,求大神T-T
只提指导绘制文字java代码,没有源码。
在 Java 中要自定义组件,一般是覆盖掉 protected void paintComponent(Graphics g); 方法就可以了,对于你这个类似画笔绘制文字java代码的程序,首先,整个画布是一个自定义的继承自像 JPanel 一样的东西,不过绘制文字java代码我们需要覆盖它的 paintComponent 方法,因为绘制文字java代码:一、我们需要在当鼠标拖放一个东西时我们移动这个选中的图形时记住它的位置;二、设定 label 时需要保存它的 Label。三、知道图形的形状。
,然后在 paintComponent 时依次画出各个图形来。
要绘图:
1、直线,g.drawLine(x,y,x2,y2); // 参数分别是起止点坐标。
2、矩形,g.fillRect(x, y, w, h); // 参数分别是左上角坐标和宽及高。
3、椭圆,g.fillOval(x, y, w, h); // 参数分别是椭圆形的外切矩形的左上角坐标及宽和高,当w 和 h 相等时是个圆。
准备绘图前 g.setColor() 设置前景色;先把整个画布用 g.fillRect() 涂成白色,再分别画各个图形,最后绘制 Label 应该在画图形之后再做。
移动图形,是给 画布组件 addMouseMotionListener 来监听事件的,在拖动时先通过 mouseDragged 事件的 MouseEvent.point 知道它的位置是在哪个图形的内部,之后的移动就修改这个图形的位置。
关于绘制文字java代码和java绘画图的代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






