구성 요소에 setPreferredSize()
을 사용해야합니다. 그런 다음 크기를 조정하려면 setBounds()
으로 전화하십시오.
버튼을 서브 클래스 화하고 setText(String text)
메서드를 재정 의하여 크기 조정 코드를 포함 할 수 있습니다. 이 크기를 조정하면 내가 버튼을 클릭 할 때마다
public ResizeToTextButton(String txt){
super(txt);
addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
setText(JOptionPane.showInputDialog("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()));
}
는 테스트를 위해, 나는 나의 새로운 JButton
서브 클래스의 생성자에서 이런 짓을 정확히.
나는 내 대답을 업데이트했다. 나는 그것이 당신이 원하는대로한다고 생각한다. – jjnguy