Bileşen üzerinde setPreferredSize()
kullanmanız gerekir. Daha sonra yeniden boyutlandırmak için setBounds()
'u arayın.
Büyük olasılıkla düğmeyi alt sınıf olarak sınıflandırır ve yeniden boyutlandırma kodunu eklemek için setText(String text)
yöntemini geçersiz kılar. o resized eğer butonuna tıklandığında zaman
public ResizeToTextButton(String txt){
super(txt);
addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
setText(JOptionPane.showInputDialog("Text"));
}
});
}
Yani, metni değiştirmek ve görebiliyordu:
@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()));
}
test için benim yeni JButton
alt sınıfının yapıcı içinde bunu uygun şekilde.
Cevabımı güncelledim, istediğinizi yaptığını düşünüyorum. – jjnguy