处理摆动中溢出的部件

时间:2009-05-21 14:39:49

标签: java swing

在我的应用程序中,我有一些很长的标签,在中文标签上,标签溢出并推出其他组件。这只是在中国的操作系统上观察到的。如何检测和处理溢出的组件?

3 个答案:

答案 0 :(得分:1)

JComponent有一个setMaximumSize方法可以帮助你。根据您使用的LayoutManager,结果可能会有所不同。要在布局级别设置此类约束,请检查SpringLayout

答案 1 :(得分:0)

我猜这是一个问题,取决于窗口大小和语言。

也许不是你想要的,但你可以像这样检查文字的大小:

// get metrics from the graphics
FontMetrics metrics = graphics.getFontMetrics(font);
// get the height of a line of text in this font and render context
int hgt = metrics.getHeight();
// get the advance of my text in this font and render context
int adv = metrics.stringWidth(text);

如果文本长度超过限制(你必须拔出帽子),你可以截断甚至缩写它 - 如果它已知,或者可能用图标替换它并使用工具提示来显示全文。

答案 2 :(得分:0)

您可以使JTextArea的行为类似于带有一些额外代码的标签,但它会根据需要将文本换行,而不是使用省略号(...)缩写。设计你的用户界面时要记住。

JTextArea label = new JTextArea();
label.setText( text );
label.setWrapStyleWord( true );
label.setLineWrap( true );
label.setEnabled( false );
label.setOpaque( false );