JMenuItem ImageIcon слишком большой

Я столкнулся с проблемой. Мое изображение слишком велико, поэтому оно увеличивает соответствующий JMenuItem. Я не хочу развивать велосипеды, как

ImageIcon image = new ImageIcon(new ImageIcon("/home/template/img.jpg") .getImage().getScaledInstance(32, 32, Image.SCALE_DEFAULT)); 

Есть ли другой способ добиться этого?

Если вы не хотите масштабировать изображение в коде (я полагаю, это то, что вы имеете в виду в вопросе?), Почему бы просто не сделать исходный образ таким размером, чтобы начать? Самое простое решение – иногда самое лучшее!

Кроме того, getScaledInstance () обычно плохой идеей. Это объясняет, почему и дает лучшие варианты для изменения размера изображения. Если вы используете изображение в другом месте, то стоит прочитать эту статью и масштабировать ее, используя более совершенную технику (например, graphics.drawImage ()), но если вы просто используете ее в меню, тогда изменение размера исходного изображения возможно лучший предмет.

Если вы собираетесь resize:

 BufferedImage image = ImageIO.read("img.jpg"); BufferedImage ret = new BufferedImage(32,32,BufferedImage.TYPE_RGB); ret.getGraphics().drawImage(image,0,0,32,32,null); 

Что-то вроде этого должно дать вам изображение, вы можете создать свой ImageIcon, используя ret .

  • Почему мои вещи не отображаются в JFrame?
  • Объяснение объяснения Java Event-Dispatching
  • Как слить ячейку в DefaultTableModel / JTable?
  • Java Swing: отображение изображений изнутри Jar
  • Как захватить событие щелчка кнопки закрытия JFrame?
  • Сделайте заставку с индикатором выполнения, например Eclipse
  • JComboBox в ячейке JTable
  • как добавить jscrollpane в jframe?
  • Нарисуйте строку в JPanel с нажатием кнопки на Java
  • Как создать список с флажками в Java Swing?
  • Поверните JLabel или ImageIcon на Java Swing
  • Давайте будем гением компьютера.