-
Hallo zusammen,
mein Vorhaben ist es das mit einem Klick auf ein ImageIcon dieses Vergrößert dargestellt wird. Wie geht man da am besten vor oder welche Hilfsklassen existieren dafür in Java? Vielen Dank für Tipps
-
15.09.11 14:32 #2
Wie willst du das Bild denn gerne vergrößern? Reinzoomen? Draufklicken und in einem Dialog groß aufpoppen lassen?
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Also die Fotos habe ich mit
Code java:1
icon.setImage(icon.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT));
verkleinert, nun möchte ich sobald man auf eines der Fotos klickt diese vergrößert (BorderLayout) in der Mitte angezeigt wird.
-
15.09.11 14:46 #4
Dann musst du dem JLabel einen MouseListener hinzufügen. Da schreibst du in die Methode:
Code java:1 2 3 4 5
public void mousePressed(MouseEvent e) { JLabel selected = (JLabel) e.getSource(); JLabel label = new JLabel(slected.getImage().getScaledInstance(150, 150, Image.SCALE_DEFAULT)); frame.add(label, BorderLayout.Center); }
Ich weiß nicht ob das funktioniert. Habe den Code nicht getestet.Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Vielen Dank für deinen Tipp werds testen
-
Hallo nochmal, also es funkioniert schonmal allerdings mit 2 Problemen hier erstmal der Code :
Code java:1 2 3 4 5 6 7 8 9 10 11 12
final ImageIcon icon=new ImageIcon(imgList.get(0)); icon.setImage(icon.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); final JLabel label1=new JLabel(icon); // MouseListener für label1 und dem Icon label1.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) { icon.setImage(icon.getImage().getScaledInstance(300, 300, Image.SCALE_DEFAULT)); panel2.add(label1); cont.add(panel2,BorderLayout.CENTER); }
1.Problem das Foto wird erst in der Mitte angezeigt sobald ich das Fenster etwas vergrößer
2. Problem das Foto wird pixelig kann man da was tun?
-
15.09.11 16:03 #7
Also...zu 1.: Du musst das Frame natürlich noch updaten
zu 2.: Das Bilder pixelig werden, wenn man sie vergrößert ist klar. Deshalb nimmt man große Bilder und verkleinert diese und zeigt sie dann in orginalgröße.Code java:1 2
frame.validate(); frame.update(f.getGraphics());
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Ok das leuchet mir ein
hier mal der Code
Wie komm ich jetzt am besten wieder an das Originalfoto da ich ja die Liste dem ImageIcon zuweise und dies dann verkleiner ?Code java:1 2 3 4 5 6 7 8 9 10 11 12
final ImageIcon icon=new ImageIcon(imgList.get(0)); icon.setImage(icon.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); final JLabel label1=new JLabel(icon); // MouseListener für label1 und dem Icon label1.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) { // hier muss ich an das Original Photo kommen panel2.add(label1); cont.add(panel2,BorderLayout.CENTER); }
-
hat sich erledigt hab es
-
Das einzige Problem was noch ist , ist das sich das Fenster nicht aktualisiert hier mal der Code des gesamten
Code 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
FlickrPhoto photo=new FlickrPhoto(); public PhotoApp() throws Exception { super("Aggregierte Fotos aus Flickr"); final Container cont=getContentPane(); final JPanel panel1=new JPanel(); final JPanel panel2=new JPanel(); //panel1.setLayout(new BorderLayout()); // Scrollbar JScrollPane jscroll = new JScrollPane(panel1); jscroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); List<URL> imgList = photo.fetchImage(); ImageIcon icon=new ImageIcon(imgList.get(0)); final ImageIcon icon_original=new ImageIcon(imgList.get(0)); icon.setImage(icon.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); final JLabel label1=new JLabel(icon); // MouseListener für label1 und dem Icon label1.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) { JLabel label_original=new JLabel(icon_original); panel2.add(label_original); cont.add(panel2,BorderLayout.CENTER); } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } } ); ImageIcon icon1=new ImageIcon(imgList.get(1)); icon1.setImage(icon1.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label2=new JLabel(icon1); ImageIcon icon2=new ImageIcon(imgList.get(2)); icon2.setImage(icon2.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label3=new JLabel(icon2); ImageIcon icon3=new ImageIcon(imgList.get(3)); icon3.setImage(icon3.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label4=new JLabel(icon3); ImageIcon icon4=new ImageIcon(imgList.get(4)); icon4.setImage(icon4.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label5=new JLabel(icon4); ImageIcon icon5=new ImageIcon(imgList.get(5)); icon5.setImage(icon5.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label6=new JLabel(icon5); ImageIcon icon6=new ImageIcon(imgList.get(6)); icon6.setImage(icon6.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label7=new JLabel(icon6); ImageIcon icon7=new ImageIcon(imgList.get(7)); icon7.setImage(icon7.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label8=new JLabel(icon7); ImageIcon icon8=new ImageIcon(imgList.get(8)); icon8.setImage(icon8.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label9=new JLabel(icon8); ImageIcon icon9=new ImageIcon(imgList.get(9)); icon9.setImage(icon9.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label10=new JLabel(icon9); panel1.add(label1); panel1.add(label2); panel1.add(label3); panel1.add(label4); panel1.add(label5); panel1.add(label6); panel1.add(label7); panel1.add(label8); panel1.add(label9); panel1.add(label10); cont.add(panel1,BorderLayout.SOUTH); } // } public static void main(String args[]) { PhotoApp app = null; try { app = new PhotoApp(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } app.setSize(600, 600); app.validate(); app.update(app.getGraphics()); app.setVisible(true); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
Was fehlt oder hab ich falsch gemacht das sich das Fenster nicht updatet?
-
15.09.11 17:33 #11
Versuchs doch mal, wenn du den Teil ans Ende von deiner click-Methode setzt.
Code java:1 2 3 4 5
public void mouseClicked(MouseEvent e) { ... frame.validate(); frame.update(frame.getGraphics()); }
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
danke danke genau das war es
-
Ein allerletztes Problemchen hab ich noch und zwar setzt er mir jetzt die Fotos in das Center des BorderLayouts sobald ich auf die unteren "verkleinerten" Fotos gegklickt habe (sehr gut
) allerdings soll er immer nur 1 Foto in der Mitte anzeigen, das heißt sobald ich auf ein anderes klicke soll das "erste" verschwinden wie löse ich das am besten?
-
15.09.11 21:30 #14
Mh, das kann ich dir jetzt ohne aktuellen Code schwer sagen. Vielleicht kannst du einfach mal deine aktuelle Version posten.
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Hier der Code :
Danke schonmal für die Hilfe.Code 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 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280
FlickrPhoto photo=new FlickrPhoto(); public PhotoApp() throws Exception { super("Aggregierte Fotos aus Flickr"); final Container cont=getContentPane(); final JPanel panel1=new JPanel(); final JPanel panel2=new JPanel(); //panel1.setLayout(new BorderLayout()); // Scrollbar JScrollPane jscroll = new JScrollPane(panel1); jscroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); List<URL> imgList = photo.fetchImage(); // Flickr Bild 1 ImageIcon icon=new ImageIcon(imgList.get(0)); final ImageIcon icon_original=new ImageIcon(imgList.get(0)); icon.setImage(icon.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); final JLabel label1=new JLabel(icon); // MouseListener für label1 und dem Icon label1.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) { JLabel label_original=new JLabel(icon_original); panel2.add(label_original); cont.add(panel2,BorderLayout.CENTER); cont.validate(); cont.update(cont.getGraphics()); } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } } ); //Flickr Bild 2 ImageIcon icon1=new ImageIcon(imgList.get(1)); final ImageIcon icon_original1=new ImageIcon(imgList.get(1)); icon1.setImage(icon1.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label2=new JLabel(icon1); label2.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) { JLabel label_original1=new JLabel(icon_original1); panel2.add(label_original1); cont.add(panel2,BorderLayout.CENTER); cont.validate(); cont.update(cont.getGraphics()); } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } } ); //Flickr Bild 3 ImageIcon icon2=new ImageIcon(imgList.get(2)); final ImageIcon icon_original2=new ImageIcon(imgList.get(2)); icon2.setImage(icon2.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label3=new JLabel(icon2); label3.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) { JLabel label_original2=new JLabel(icon_original2); panel2.add(label_original2); cont.add(panel2,BorderLayout.CENTER); cont.validate(); cont.update(cont.getGraphics()); } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } }); // Flickr Bild 4 ImageIcon icon3=new ImageIcon(imgList.get(3)); final ImageIcon icon_original3=new ImageIcon(imgList.get(3)); icon3.setImage(icon3.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label4=new JLabel(icon3); label4.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) { JLabel label_original3=new JLabel(icon_original3); panel2.add(label_original3); cont.add(panel2,BorderLayout.CENTER); cont.validate(); cont.update(cont.getGraphics()); } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } } ); // Flickr Bild 5 ImageIcon icon4=new ImageIcon(imgList.get(4)); final ImageIcon icon_original4=new ImageIcon(imgList.get(4)); icon4.setImage(icon4.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label5=new JLabel(icon4); label5.addMouseListener(new MouseListener(){ public void mouseClicked(MouseEvent e) { JLabel label_original4=new JLabel(icon_original4); panel2.add(label_original4); cont.add(panel2,BorderLayout.CENTER); cont.validate(); cont.update(cont.getGraphics()); } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } }); ImageIcon icon5=new ImageIcon(imgList.get(5)); icon5.setImage(icon5.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label6=new JLabel(icon5); ImageIcon icon6=new ImageIcon(imgList.get(6)); icon6.setImage(icon6.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label7=new JLabel(icon6); ImageIcon icon7=new ImageIcon(imgList.get(7)); icon7.setImage(icon7.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label8=new JLabel(icon7); ImageIcon icon8=new ImageIcon(imgList.get(8)); icon8.setImage(icon8.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label9=new JLabel(icon8); ImageIcon icon9=new ImageIcon(imgList.get(9)); icon9.setImage(icon9.getImage().getScaledInstance(70, 70, Image.SCALE_DEFAULT)); JLabel label10=new JLabel(icon9); // Labels mit Fotos auf Panel setzen panel1.add(label1); panel1.add(label2); panel1.add(label3); panel1.add(label4); panel1.add(label5); panel1.add(label6); panel1.add(label7); panel1.add(label8); panel1.add(label9); panel1.add(label10); cont.add(panel1,BorderLayout.SOUTH); } // } public static void main(String args[]) { PhotoApp app = null; try { app = new PhotoApp(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } app.setSize(600, 600); app.setVisible(true); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
Ähnliche Themen
-
ImageIcon
Von primo11 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 19.12.07, 13:06 -
ImageIcon ersetzten
Von Don Ecker im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 14.09.07, 22:56 -
ImageIcon
Von tha_specializt im Forum JavaAntworten: 2Letzter Beitrag: 18.08.07, 19:47 -
ImageIcon finden
Von yidaki im Forum JavaAntworten: 1Letzter Beitrag: 10.11.04, 16:16 -
ico Dateien als ImageIcon
Von jens wulf im Forum JavaAntworten: 0Letzter Beitrag: 22.10.03, 12:10



4Danke

Zitieren
Login





