powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать подгрузку изображений к списку
2 сообщений из 2, страница 1 из 1
Как сделать подгрузку изображений к списку
    #38841509
sqwartl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый, форумчане!
Всех с наступющим!
Есть код:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
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();
        
        
        final String[] number = new String[] {"1044", "1045", "1046", "1054"}; 
		final JComboBox combo = new JComboBox(number);
		combo.setSelectedIndex(0);
		combo.setEditable(true);
			
        
		final JButton butGo = new JButton("GO");
			
		butGo.addActionListener(new ActionListener() {        
			public void actionPerformed(ActionEvent e) {            
				combo.getSelectedItem();
				
				}   
			});

		
		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 += (.02 * 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();
            }
        }
    }
 
}



Хочется сделать, чтобы по нижатии на кнопочку GO, у меня подгружались разные изображения, в зависимсти от выбранного пункта из выпадющего списка.
Как я понял, это можно сделать так:
Код: java
1.
2.
3.
String n = combo.getSelectedItem();
Image image = new ImageIcon(n + ".jpg").getImage();
ourGraphics.drawImage(image, 100, 100, this);



Но эклипс соотв выдает ошибку "combo cannot be resolved"...
Как я понял, потому, что слушатель находиться в другом методе(main).
Подскажите, люди добрые, как-то можно решить эту проблему или сделать под другому?

Заранее благодарю.
...
Рейтинг: 0 / 0
Как сделать подгрузку изображений к списку
    #38842351
eml78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
        butGo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String n = (String) combo.getSelectedItem();
                System.out.println(n);
            }
        });


Попробовал ваш пример. Если написать вот так, то у меня нормально выводит номер картинки (ругани на combo нет) - картинки не гружу, т.к. у меня их нет :)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать подгрузку изображений к списку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]