В конце концов я понял, что масштабирование текста не нужно.
Чтобы получить миниатюру файлов изображений, я использовал код в , чтобы JFileChooser показывал миниатюры изображений - проверьте ответ BoffinbraiN.
Тогда для масштабирования:
1) добавить ActionListener
к кнопкам ThumbnailFileChooser
.
public class ZoomListener implements ActionListener {
private boolean zoomIn = false;
private IconScaleManager iconScaleManager = null;
public ZoomListener(boolean zoom, IconScaleManager renderer) {
zoomIn = zoom;
iconScaleManager = renderer;
}
@Override
public void actionPerformed(ActionEvent e) {
iconScaleManager.scaleButton(zoomIn);
}
}
2) ActionListener::actionPerformed()
вызывает scale method
из ScaleManager
.
@Override
public void actionPerformed(ActionEvent e) {
iconScaleManager.scaleButton(zoomIn);
}
3) Метод ScaleManager
изменяет и обновляет ячейки ThumbnailFileChooser's Jlist
(список является атрибутом ScaleManager
)
public class IconScaleManager {
static final int[] iconScales = new int[]{ 16, 32, 64, 128, 256, 512, 1024, 2048 };
private int scaleIndex = 4;
private JList fileList = null;
public IconScaleManager(JList list) {
fileList = list;
setFixedCellDimension();
}
public void scaleButton(boolean zoomIn) {
if (zoomIn && scaleIndex < iconScales.length - 1) {
scaleIndex++;
setFixedCellDimension();
} else if (!zoomIn && 0 < scaleIndex) {
scaleIndex--;
setFixedCellDimension();
}
}
private void setFixedCellDimension() {
fileList.setFixedCellWidth(iconScales[scaleIndex]);
fileList.setFixedCellHeight(iconScales[scaleIndex]);
}
}
Спасибо @ thanopi57 за помощь. Я действительно не использовал то, что вы предоставили, но я ценю вашу поддержку.
Кроме того, я должен убедиться, что он работает, потому что не может быть JList для всех JFileChooser