因此,我有一些JButton
,我需要根据屏幕的大小来更改字体大小。由于我正在使用GridLayout
布局,所以JButton
的大小会自动更改。我尝试了以下代码(在线程中运行):
@Override
public void run() {
int i = 0;
int l = 0;
while(true) {
for(int x=0; x<buttons.length; x++) {
while(true) {
int size = 300;
size--;
Font font = buttons[x].getFont().deriveFont((float) size);
if(font.canDisplayUpTo(buttons[x].getText()) == 1) {
buttons[x].setFont(font);
o(font.getSize());
break;
}
}
buttons[x].setText(String.valueOf( l ));
}
l++;
try {
Thread.sleep(100);
} catch (InterruptedException ex) {}
}
}
ComponentListener
添加到框架而不是线程,并覆盖它的componentResized
方法。 - Lukas Rotter