Jam*_* P. 5 java swing text resize jbutton
如何在运行时调整JButton的大小以使其适应由给定的文本setSize?我做了一些搜索,这是我到目前为止提出的代码.这会变成一种实用方法吗?
FontMetrics metrics = getFontMetrics( font );
int width = metrics.stringWidth( string );
Run Code Online (Sandbox Code Playgroud)
PS:没有使用布局管理器.
您需要setPreferredSize()在组件上使用.然后,要调整大小,请致电setBounds().
我可能会将该按钮子类化,并覆盖该setText(String text)方法以包含调整大小代码.
@Override
public void setText(String arg0) {
super.setText(arg0);
FontMetrics metrics = getFontMetrics(getFont());
int width = metrics.stringWidth( getText() );
int height = metrics.getHeight();
Dimension newDimension = new Dimension(width+40,height+10);
setPreferredSize(newDimension);
setBounds(new Rectangle(
getLocation(), getPreferredSize()));
}
Run Code Online (Sandbox Code Playgroud)
为了测试,我在我的新JButton子类的构造函数中执行了此操作:
public ResizeToTextButton(String txt){
super(txt);
addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
setText(JOptionPane.showInputDialog("Text"));
}
});
}
Run Code Online (Sandbox Code Playgroud)
因此,每当我点击按钮时,我都可以更改文本并查看它是否正确调整大小.
| 归档时间: |
|
| 查看次数: |
7035 次 |
| 最近记录: |