Список - подгрузка изображений - Java

Узнай цену своей работы

Формулировка задачи:

День добрый, уважаемые! С наступающем всех! Подскажите, кому не сложно: Как сделать так, что бы при выборе, в списке, определенного номера и нажатии кнп "GO", подгружалась та или иная картинка. Те, выбрал 1044 - загрузилась одна картинка, выбрал 1045 - другая.
Листинг программы
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.awt.geom.AffineTransform;
  4. import javax.swing.ImageIcon;
  5. import javax.swing.JButton;
  6. import javax.swing.JComboBox;
  7. import javax.swing.JComponent;
  8. import javax.swing.JFrame;
  9. import javax.swing.JPanel;
  10.  
  11. public class tests {
  12. private static TransformingCanvas canvas;
  13. public static void main(String[] args) {
  14. JFrame frame = new JFrame();
  15. JPanel toolbar = new JPanel();
  16.  
  17. String[] number = new String[] {"1044", "1045", "1046", "1054"};
  18. JComboBox combo = new JComboBox(number);
  19. combo.setSelectedIndex(0);
  20. JButton butGo = new JButton("GO");
  21.  
  22. toolbar.add(combo);
  23. toolbar.add(butGo);
  24.  
  25. canvas = new TransformingCanvas();
  26. TranslateHandler translater = new TranslateHandler();
  27. canvas.addMouseListener(translater);
  28. canvas.addMouseMotionListener(translater);
  29. canvas.addMouseWheelListener(new ScaleHandler());
  30. frame.setLayout(new BorderLayout());
  31. frame.getContentPane().add(toolbar, BorderLayout.PAGE_START);
  32. frame.getContentPane().add(canvas, BorderLayout.CENTER);
  33. frame.setSize(500, 500);
  34. frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  35. frame.setVisible(true);
  36. }
  37. private static class TransformingCanvas extends JComponent {
  38. private static final long serialVersionUID = 1L;
  39. private double translateX;
  40. private double translateY;
  41. private double scale;
  42. TransformingCanvas() {
  43. translateX = 0;
  44. translateY = 0;
  45. scale = 0.5;
  46. setOpaque(true);
  47. setDoubleBuffered(true);
  48. }
  49. @Override
  50. public void paint(Graphics g) {
  51. AffineTransform tx = new AffineTransform();
  52. tx.translate(translateX, translateY);
  53. tx.scale(scale, scale);
  54. Graphics2D ourGraphics = (Graphics2D) g;
  55. ourGraphics.setColor(Color.WHITE);
  56. ourGraphics.fillRect(0, 0, getWidth(), getHeight());
  57. ourGraphics.setTransform(tx);
  58. ourGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
  59. RenderingHints.VALUE_ANTIALIAS_ON);
  60. ourGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
  61. RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
  62. Image image = new ImageIcon("1.jpg").getImage();
  63. ourGraphics.drawImage(image, 100, 100, this);
  64. }
  65. }
  66. private static class TranslateHandler implements MouseListener,
  67. MouseMotionListener {
  68. private int lastOffsetX;
  69. private int lastOffsetY;
  70. public void mousePressed(MouseEvent e) {
  71. // Захват стартовой точки
  72. lastOffsetX = e.getX();
  73. lastOffsetY = e.getY();
  74. }
  75. public void mouseDragged(MouseEvent e) {
  76. // new x and y are defined by current mouse location subtracted
  77. // by previously processed mouse location
  78. int newX = e.getX() - lastOffsetX;
  79. int newY = e.getY() - lastOffsetY;
  80. // increment last offset to last processed by drag event.
  81. lastOffsetX += newX;
  82. lastOffsetY += newY;
  83. // update the canvas locations
  84. canvas.translateX += newX;
  85. canvas.translateY += newY;
  86. // schedule a repaint.
  87. canvas.repaint();
  88. }
  89. public void mouseClicked(MouseEvent e) {}
  90. public void mouseEntered(MouseEvent e) {}
  91. public void mouseExited(MouseEvent e) {}
  92. public void mouseMoved(MouseEvent e) {}
  93. public void mouseReleased(MouseEvent e) {}
  94. }
  95. private static class ScaleHandler implements MouseWheelListener {
  96. public void mouseWheelMoved(MouseWheelEvent e) {
  97. if(e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) {
  98. // make it a reasonable amount of zoom
  99. // .1 gives a nice slow transition
  100. canvas.scale += (.1 * e.getWheelRotation());
  101. // don't cross negative threshold.
  102. // also, setting scale to 0 has bad effects
  103. canvas.scale = Math.max(0.00001, canvas.scale);
  104. canvas.repaint();
  105. }
  106. }
  107. }
  108. }
Очень тяжело дается сие чудо. Много примеров излазил, но в итоге ничего путнего не добился. Вроде по отдельности, в других примерах, почти понятно как работают слушатели..как прикручивается работа кнопки к списку...но, блин, не могу коректно сюда все воткнуть..запутался больше( Заранее, спасибо и прошу прощения.

Решение задачи: «Список - подгрузка изображений»

textual
Листинг программы
  1. String numberImage = combo.getSelectedItem();
  2. ***
  3. Image image = new ImageIcon(numberImage + ".jpg").getImage();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы