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. 动态调整字体大小
- 4. 字体调整大小HTML
- 5. 动态文本 - 字体自动调整大小
- 6. 自动调整大小的单元格/动态字体在ios8
- 7. 调整字体大小 - 字体属性
- 8. iframe自动调整大小
- 9. 自动NSView调整大小
- 10. Android - 自动调整大小
- 11. Jsplitpane自动调整大小
- 12. JTabbedPane自动调整大小
- 13. 自动调整大小JTabbedPane
- 14. UILabel - 自动调整大小
- 15. 自动调整大小CCLabelBMFont
- 16. GtkTextView自动调整大小
- 17. CStatusBarCtrl自动调整大小
- 18. DataGridView自动调整大小
- 19. DirectShow自动调整大小
- 20. C#自动调整窗体大小DataGridView的大小
- 21. 调整窗体大小时自动调整列表框的大小
- 22. 使用JQuery调整窗口大小调整CSS字体大小
- 23. 调整div大小时调整字体大小
- 24. 在WPF中自动调整字体大小?
- 25. 自动调整seaborn热图中的字体大小
- 26. 字体大小自动调整为适合
- 27. 自动调整字体大小以适应容器
- 28. 如何避免iOS自动调整字体大小?
- 29. 如何获得UILabel(UITextView)自动调整字体大小?
- 30. 自动调整NSTextView和它的字体大小
只是不要让文本太小而无法阅读! – trashgod 2010-09-05 17:44:28