Q
自動調整字體大小
0
A
回答
1
取而代之的是,詢問JTextField
選定字體應該有多高,並將首選寬度設置爲您的規格,例如, 240在下面的例子中。用戶可以使用左右箭頭鍵滾動文本。
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
/** @see http://stackoverflow.com/questions/3646832 */
public class JTextFieldTest extends JPanel {
public JTextFieldTest() {
String s = "A damsel with a dulcimer in a vision once I saw.";
JTextField tf = new JTextField(s);
tf.setFont(new Font("Serif", Font.PLAIN, 24));
tf.validate();
int h = tf.getPreferredSize().height;
tf.setPreferredSize(new Dimension(240, h));
tf.getCaret().setDot(0);
this.add(tf);
}
private void display() {
JFrame f = new JFrame("JTextFieldTest");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(this);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new JTextFieldTest().display();
}
});
}
}
附錄:更好的是,使用一個合適的佈局並相應地設置所述含面板的優選的尺寸。如果用戶放大窗口,這可以讓您的初始佈局「呼吸」。
public JTextFieldTest() {
this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
String s = "It was an Abyssinian maid, and on her dulcimer she played,";
JTextField tf = new JTextField(s);
tf.setFont(new Font("Serif", Font.PLAIN, 24));
tf.validate();
int h = tf.getPreferredSize().height;
tf.getCaret().setDot(0);
this.setPreferredSize(new Dimension(240, h));
this.add(tf);
}
1
它可以計算文本寬度,用於與FontMetrics
類給定的字體,並與文本框寬度比較這長度。
JtextField field = new JTextField();
FontMetrics fm = field.getFontMetrics(field.getFont());
int textwidth = fm.stringWidth(field.getText());
+0
'TextLayout'是另一種選擇:http://download.oracle.com/javase/6/docs/api/java/awt/font/TextLayout.html – trashgod 2010-09-05 17:43:29
相關問題
- 1. 自動調整UILabel字體大小
- 2. Java自動調整到Windows 7字體大小調整
- 3. vb.net窗體自動調整大小
- 4. 窗體自動調整大小功能
- 5. 動態調整字體大小
- 6. 調整字體大小FPDF
- 7. 字體調整大小HTML
- 8. 大小調整字體
- 9. 調整字體大小的字體真棒字體的大小
- 10. 調整字體大小 - 字體屬性
- 11. 動態文本 - 字體自動調整大小
- 12. 自動調整大小的單元格/動態字體在ios8
- 13. DirectShow自動調整大小
- 14. YouTube自動調整大小
- 15. 自動調整大小JTabbedPane
- 16. GridView自動調整大小
- 17. iframe自動調整大小
- 18. 自動NSView調整大小
- 19. 自動調整大小CCLabelBMFont
- 20. 自動調整大小
- 21. JTextFields自動調整大小
- 22. CStatusBarCtrl自動調整大小
- 23. 自動調整SVG大小?
- 24. DataGridView自動調整大小
- 25. FlowLayoutPanel自動調整大小
- 26. JTabbedPane自動調整大小
- 27. GtkTextView自動調整大小
- 28. 自動調整大小GtkScrolledWindow
- 29. NSScrollView自動調整大小
- 30. Android - 自動調整大小
只是不要讓文本太小而無法閱讀! – trashgod 2010-09-05 17:44:28