Список - подгрузка изображений - Java
Формулировка задачи:
День добрый, уважаемые!
С наступающем всех!
Подскажите, кому не сложно:
Как сделать так, что бы при выборе, в списке, определенного номера и нажатии кнп "GO", подгружалась та или иная картинка. Те, выбрал 1044 - загрузилась одна картинка, выбрал 1045 - другая.
Очень тяжело дается сие чудо. Много примеров излазил, но в итоге ничего путнего не добился.
Вроде по отдельности, в других примерах, почти понятно как работают слушатели..как прикручивается работа кнопки к списку...но, блин, не могу коректно сюда все воткнуть..запутался больше(
Заранее, спасибо и прошу прощения.
import java.awt.*; import java.awt.event.*; import java.awt.geom.AffineTransform; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JPanel; public class tests { private static TransformingCanvas canvas; public static void main(String[] args) { JFrame frame = new JFrame(); JPanel toolbar = new JPanel(); String[] number = new String[] {"1044", "1045", "1046", "1054"}; JComboBox combo = new JComboBox(number); combo.setSelectedIndex(0); JButton butGo = new JButton("GO"); toolbar.add(combo); toolbar.add(butGo); canvas = new TransformingCanvas(); TranslateHandler translater = new TranslateHandler(); canvas.addMouseListener(translater); canvas.addMouseMotionListener(translater); canvas.addMouseWheelListener(new ScaleHandler()); frame.setLayout(new BorderLayout()); frame.getContentPane().add(toolbar, BorderLayout.PAGE_START); frame.getContentPane().add(canvas, BorderLayout.CENTER); frame.setSize(500, 500); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.setVisible(true); } private static class TransformingCanvas extends JComponent { private static final long serialVersionUID = 1L; private double translateX; private double translateY; private double scale; TransformingCanvas() { translateX = 0; translateY = 0; scale = 0.5; setOpaque(true); setDoubleBuffered(true); } @Override public void paint(Graphics g) { AffineTransform tx = new AffineTransform(); tx.translate(translateX, translateY); tx.scale(scale, scale); Graphics2D ourGraphics = (Graphics2D) g; ourGraphics.setColor(Color.WHITE); ourGraphics.fillRect(0, 0, getWidth(), getHeight()); ourGraphics.setTransform(tx); ourGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); ourGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); Image image = new ImageIcon("1.jpg").getImage(); ourGraphics.drawImage(image, 100, 100, this); } } private static class TranslateHandler implements MouseListener, MouseMotionListener { private int lastOffsetX; private int lastOffsetY; public void mousePressed(MouseEvent e) { // Захват стартовой точки lastOffsetX = e.getX(); lastOffsetY = e.getY(); } public void mouseDragged(MouseEvent e) { // new x and y are defined by current mouse location subtracted // by previously processed mouse location int newX = e.getX() - lastOffsetX; int newY = e.getY() - lastOffsetY; // increment last offset to last processed by drag event. lastOffsetX += newX; lastOffsetY += newY; // update the canvas locations canvas.translateX += newX; canvas.translateY += newY; // schedule a repaint. canvas.repaint(); } public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mouseMoved(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} } private static class ScaleHandler implements MouseWheelListener { public void mouseWheelMoved(MouseWheelEvent e) { if(e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) { // make it a reasonable amount of zoom // .1 gives a nice slow transition canvas.scale += (.1 * e.getWheelRotation()); // don't cross negative threshold. // also, setting scale to 0 has bad effects canvas.scale = Math.max(0.00001, canvas.scale); canvas.repaint(); } } } }
Решение задачи: «Список - подгрузка изображений»
textual
Листинг программы
String numberImage = combo.getSelectedItem(); *** Image image = new ImageIcon(numberImage + ".jpg").getImage();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д