Я разрабатываю кроссплатформенное настольное приложение с использованием Jython и Swing, и я нашел заминку.
Я хотел бы разработать кнопку, которая позволит мне загрузить изображение на заднем плане и изменить его.когда я нажимаю на загруженное изображение.
Прилагаю в качестве примера несколько картинок о том, как бы я хотел, чтобы мой виджет был.
Панель загрузки без изображения
А потом, когда язагрузить изображение:
Панель загрузки с изображением
Я пытался использовать следующий код:
fd = FileDialog(self, "Scegli un'immagine", FileDialog.LOAD)
fd.setFile(';*.'.join(("*.bmp","jpg","jpeg","wbmp","png","gif")))
fd.setVisible(True)
fileName = fd.getFile()
if fileName != None :
fileAbsPath = os.path.abspath(fileName)
"""'self.bigDict['imgButton']' is the current JButton"""
self.bigDict['imgButton'].setIcon(ImageIcon(fileAbsPath))
Когда я нажимаю "Открыть », изображение не вставлено в кнопку.Я не понимаю, почему.
Я также пытался использовать следующий код:
if fileName != None :
fileAbsPath = os.path.abspath(fileName)
img = ImageIO.read(getClass().getResource(fileAbsPath))
self.bigDict['imgButton'].setIcon(img)
В приведенном выше примере сообщается о следующей ошибке:
img = ImageIO.read(getClass (). getResource (fileAbsPath))
TypeError: getClass (): ожидается 1 аргумент;получил 0
Мне было бы интересно узнать, почему кнопка не обновляется с загруженным изображением, и почему вышеупомянутая ошибка в java не произойдет.
Заранее спасибо!