查看字体的位置
来源:互联网 发布:北京公共图书馆网络 编辑:程序博客网 时间:2024/05/29 15:15
import java.awt.*;
import javax.swing.*;
import java.awt.font.*;
import java.awt.geom.*;
public class FrontTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
EventQueue.invokeLater(new Runnable()
{
public void run()
{
JFrame frame=new FontFrame();
frame.setTitle("FontTest");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class FontFrame extends JFrame
{
public FontFrame()
{
add(new FontComponent());
pack();
}
}
class FontComponent extends JComponent
{
private static final int DEFAULT_WIDTH=300;
private static final int DEFAULT_HEIGHT=200;
public void paintComponent(Graphics g)
{
Graphics2D g2=(Graphics2D) g;
String message="Hello World!";
Font f=new Font("Serif",Font.BOLD,36);
g2.setFont(f);
FontRenderContext context=g2.getFontRenderContext();
Rectangle2D bounds=f.getStringBounds(message, context);
double x=(getWidth()-bounds.getWidth())/2;
double y=(getHeight()-bounds.getHeight())/2;
double ascent=-bounds.getY();
double baseY=y+ascent;
g2.drawString(message, (int)x, (int)baseY);//注意这里的基地线
g2.setPaint(Color.LIGHT_GRAY);
g2.draw(new Line2D.Double(x, baseY,x+bounds.getWidth(),baseY));
Rectangle2D rect=new Rectangle2D.Double(x, y, bounds.getWidth(), bounds.getHeight());
g2.draw(rect);
}
public Dimension getPreferredSize()
{
return new Dimension(DEFAULT_WIDTH,DEFAULT_HEIGHT);
}
}
import javax.swing.*;
import java.awt.font.*;
import java.awt.geom.*;
public class FrontTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
EventQueue.invokeLater(new Runnable()
{
public void run()
{
JFrame frame=new FontFrame();
frame.setTitle("FontTest");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class FontFrame extends JFrame
{
public FontFrame()
{
add(new FontComponent());
pack();
}
}
class FontComponent extends JComponent
{
private static final int DEFAULT_WIDTH=300;
private static final int DEFAULT_HEIGHT=200;
public void paintComponent(Graphics g)
{
Graphics2D g2=(Graphics2D) g;
String message="Hello World!";
Font f=new Font("Serif",Font.BOLD,36);
g2.setFont(f);
FontRenderContext context=g2.getFontRenderContext();
Rectangle2D bounds=f.getStringBounds(message, context);
double x=(getWidth()-bounds.getWidth())/2;
double y=(getHeight()-bounds.getHeight())/2;
double ascent=-bounds.getY();
double baseY=y+ascent;
g2.drawString(message, (int)x, (int)baseY);//注意这里的基地线
g2.setPaint(Color.LIGHT_GRAY);
g2.draw(new Line2D.Double(x, baseY,x+bounds.getWidth(),baseY));
Rectangle2D rect=new Rectangle2D.Double(x, y, bounds.getWidth(), bounds.getHeight());
g2.draw(rect);
}
public Dimension getPreferredSize()
{
return new Dimension(DEFAULT_WIDTH,DEFAULT_HEIGHT);
}
}
0 0
- 查看字体的位置
- 字体旋转的位置控制
- 修改UILable的字体位置
- 查看linux下的字体
- RadioButton的字体和位置的改变
- iOS9 UIButton设置字体颜色和字体的大小、字体的位置
- 查看所有已安装的字体
- Iphone 查看系统所有的字体
- iOS 查看系统安装字体的方法
- joomla模板的模块位置查看技巧
- Linux 查看软件位置的命令
- Linux 查看软件位置的命令
- Linux下查看命令的位置
- addr2line查看死机代码的位置
- oracle物理文件的位置查看
- myeclipse下查看jdk的安装位置
- linux下查看进程的位置
- 在Eclipse中查看jdk的位置
- 你应当知道的Java牛人 v2.0
- 织梦扣扣客服的仿制
- python代码性能优化技巧
- HDU 4798 Skycity
- Ubuntu安装xpenguins-2.2问题
- 查看字体的位置
- osgSim::SphereSegment分析
- 转:kerneler_ menuconfig过程详解
- sssss
- 为什么要使用SLF4J而不是Log4J
- linux popen和pclose
- 【大话NoSQL】——什么是NoSQL?
- 复数的加减
- C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。 ——兔子党逍遥原创,转来分享学习