2013年6月26日 星期三

Java 計算String在畫面上的Width

案例:想知道字串在畫面上的width是否會超出Label的Width。

使用:
  1. 使用Componet中的 FontMetrics getFontMetrics(Font font) 方法取回FontMetrics。
  2. 使用FontMetrics中的int stringWidth(String str) 取回字串寬度。

Componet的名稱空間:

 java.lang.Object
    extended by java.awt.Component

FontMetrics的名稱空間:


範例:



import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class StringWidth_Test extends JFrame
{
private JLabel l = new JLabel();

public StringWidth_Test()
{
super();
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(500, 400);
this.setLayout(null);
l.setBackground(Color.PINK);
l.setOpaque(true);
l.setHorizontalAlignment(JLabel.RIGHT);
this.getContentPane().add(l);
//設定label長高
l.setSize(100,20);
//設定label字型
l.setFont(new Font("Dialog", 1, 12));
String message = "1234567890abckefg";
//測試字串在Label中的長度
int stringWidth = l.getFontMetrics(l.getFont()).stringWidth(message);

System.out.println(stringWidth);

if(stringWidth > l.getWidth())
{
l.setText("太長了");

}else{
l.setText(message);
}
}

public static void main(String[] args) 
{
new StringWidth_Test();
}
}

沒有留言:

張貼留言