Список - подгрузка изображений - 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д