Java 如何使用awt或其他绘图机制仅部分绘制字符?
如何仅部分绘制一个字符或一系列字符(例如,仅绘制上半部分)Java 如何使用awt或其他绘图机制仅部分绘制字符?,java,drawing,awt,Java,Drawing,Awt,如何仅部分绘制一个字符或一系列字符(例如,仅绘制上半部分) java.awt.Graphics类的方法drawString()只允许您完整地绘制字符,但我只想显示下半部分,例如。设置图形对象 下面的代码生成此屏幕截图: public static void main(String[] args) { JFrame frame = new JFrame("Test"); frame.add(new JComponent() { @Override
java.awt.Graphics
类的方法drawString()
只允许您完整地绘制字符,但我只想显示下半部分,例如。设置图形对象
下面的代码生成此屏幕截图:
public static void main(String[] args) {
JFrame frame = new JFrame("Test");
frame.add(new JComponent() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
String text = "Hello World!";
g.setFont(g.getFont().deriveFont(40f));
Rectangle2D b = g.getFontMetrics().getStringBounds(text, g);
Rectangle2D bounds = new Rectangle2D.Double(100 + b.getX(),
100 + b.getY(),
b.getWidth(),
b.getHeight() / 2);
g.setClip(bounds);
g.drawString(text, (int) bounds.getX(),
(int) (bounds.getMaxY() + b.getMaxY()));
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
frame.setVisible(true);
}
对于更复杂的“部分可见”版本,比<代码>剪辑< /代码>可以提供,考虑使用不透明/透明<代码> GradientPaint < /代码>或<代码> MulitpleGradientPaint < /代码>。